Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

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

Почему некоторые переменные объявляют через $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, который при загрузке модифицирует исходники?

Надіслати
Поділитися на інших сайтах


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

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

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

 

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

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

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

  • +1 1
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.