Перейти к содержанию

Рекомендуемые сообщения

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

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

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

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

$option_data = array();

 

Изменено пользователем fofa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, fofa сказал:

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

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


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

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


$option_data = array();

 

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

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

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

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, fofa сказал:

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

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

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, legioner26 сказал:

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, fofa сказал:

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

правильно

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

К примеру так 

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

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
38 минут назад, legioner26 сказал:

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

К примеру так 


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

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 минут назад, legioner26 сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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>";
        ...
    }
}

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

Изменено пользователем fofa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, thentru сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 минут назад, thentru сказал:

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

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

Изменено пользователем fofa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, fofa сказал:

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

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

 

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

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

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.