Jump to content
Sign in to follow this  
fofa

Объявление переменных

Recommended Posts

Помогите разобраться.

Почему некоторые переменные объявляют через $data:

$data['product'] = array();

а некоторые без:

$option_data = array();

 

Edited by fofa

Share this post


Link to post
Share on other sites
7 минут назад, fofa сказал:

Помогите разобраться.

Почему некоторые переменные объявляют через $data:

$data['product'] = array();

а некоторые без:

$option_data = array();

 

Массив $data содержит в себе ключи для передачи данных в шаблон. К примеру ключ 

$data ['мой_ключ'] = данные ключа;

В шаблоне будет выводиться через <?php echo $мой_ключ; ?>

 

  • +1 1

Share this post


Link to post
Share on other sites
6 минут назад, fofa сказал:

Почему некоторые переменные объявляют через $data:

это не объявление через $dafa.   $data уже объявлена как массив.  в контроллере,  в этот массив добавляются данные для шаблона.

  • +1 2

Share this post


Link to post
Share on other sites
11 минут назад, legioner26 сказал:

$data ['мой_ключ'] = данные ключа;

В шаблоне будет выводиться через <?php echo $мой_ключ; ?>

 

т.е. переменные без $data служат только для вычислений внутри системы, а переменные $data можно использовать в вычислениях и выводить во view?

Я правильно понимаю, что этот массив $data в рамках класса уникальный? например, если в контроллере catalog/product объявлена $data['xyz'], то в контроллере catalog/category в массиве $data эта переменная уже отсутствует?

Share this post


Link to post
Share on other sites
5 минут назад, fofa сказал:

если в контроллере catalog/product объявлена $data['xyz'], то в контроллере catalog/category в массиве $data эта переменная уже отсутствует?

правильно

  • +1 1

Share this post


Link to post
Share on other sites

Любую модель и любой контроллер можно подключить в другом контроллере либо модели.

$this->load->model('catalog/category');

 $this->load->model('catalog/product');

$this->load->controller('module/mymodule');

Share this post


Link to post
Share on other sites

Вы можете просмотреть в любом контроллере либо модели что содержится в массиве $data

К примеру так 

echo "<pre>"; print_r($data); echo "</pre>";

 

  • +1 1

Share this post


Link to post
Share on other sites

Вам выведет массив с данными, а потом можете с ним извращаться как хотите :)

  • +1 1

Share this post


Link to post
Share on other sites
38 минут назад, legioner26 сказал:

Вы можете просмотреть в любом контроллере либо модели что содержится в массиве $data

К примеру так 

echo "<pre>"; print_r($data); echo "</pre>";

 

 

Чтобы посмотреть результат надо к контроллеру или модели обращаться напрямую через URL? или во view выводить?

Share this post


Link to post
Share on other sites

В любом контроллере, где хотите просмотреть результат, что хранится в массиве.

Share this post


Link to post
Share on other sites
10 минут назад, legioner26 сказал:

В любом контроллере, где хотите просмотреть результат, что хранится в массиве.

а обращаться к любому контроллеру из браузера как?

Share this post


Link to post
Share on other sites

Да к примеру если выводить в контроллере product/category то при заходе на любую категорию у вас отобразится массив с данными.

  • +1 1

Share this post


Link to post
Share on other sites
3 часа назад, legioner26 сказал:

Да к примеру если выводить в контроллере product/category то при заходе на любую категорию у вас отобразится массив с данными.

а как выводить массив из модели? К примеру 

class ModelCatalogCategory extends Model {
    public function getCategory($category_id) {
        $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'");
        return $query->row;
        echo "<pre>"; print_r($query); echo "</pre>";
        ...
    }
}

при заходе в категорию не выводит ничего

Edited by fofa

Share this post


Link to post
Share on other sites

Вывод нужно делать до return
 

Можно вывести в файл лога
 

$this->log->write(print_r($query->row, true));

И тут стоит учитывать где вы добавляете вывод, т.к. могут быть модифицированные файлы и вывод вы не увидите, если добавите в оригинальный файл
Т.е. нудно добавить именно в модифицированный файл, который лежит в папке system/modification

  • +1 2

Share this post


Link to post
Share on other sites
7 минут назад, thentru сказал:

И тут стоит учитывать где вы добавляете вывод, т.к. могут быть модифицированные файлы и вывод вы не увидите, если добавите в оригинальный файл
Т.е. нудно добавить именно в модифицированный файл, который лежит в папке system/modification

Модифицированные - вы имеете ввиду с помощью .xml, который при загрузке модифицирует исходники?

Share this post


Link to post
Share on other sites
14 минут назад, thentru сказал:

Вывод нужно делать до return

Почему нужно делать до return?

Edited by fofa

Share this post


Link to post
Share on other sites
8 минут назад, fofa сказал:

Модифицированные - вы имеете ввиду с помощью .xml, который при загрузке модифицирует исходники?

Да, т.к. движок изначально загружает именно их, если они есть в папке system/modification

 

5 минут назад, fofa сказал:

Почему нужно делать до return?

Потому что вызов return прерывает выполнение функции (метода) и возвращает указанное значение

  • +1 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.