Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Recommended Posts

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

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

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

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

$option_data = array();

 

Edited by fofa
Link to post
Share on other sites

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

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

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


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

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


$option_data = array();

 

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

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

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

 

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

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

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

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

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

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

 

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

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

Link to post
Share on other sites

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

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

правильно

  • +1 1
Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites

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

К примеру так 

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

 

  • +1 1
Link to post
Share on other sites

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

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

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

К примеру так 


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

 

 

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

Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites

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

  • +1 1
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
Link to post
Share on other sites

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

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

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

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

  • +1 2
Link to post
Share on other sites

7 минут назад, thentru сказал:

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

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

Link to post
Share on other sites

14 минут назад, thentru сказал:

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

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

Edited by fofa
Link to post
Share on other sites

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

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

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

 

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

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

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

  • +1 1
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

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.