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

Использование переменной со значением из шаблона в контроллере и модели

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

Собственно все описано в заголовке 8)

 

Задача:

в шаблоне: к примеру получил переменную $per_zapr = '5';

 

в контроллере: к примеру делаю запрос в базу: $this->data['otvet_ot_bazi'] = $this->db->query("SELECT text FROM " . DB_PREFIX . "product_attribute  WHERE product_id = '" . (int)$this->request->get['product_id'] . "' AND attribute_id = '" . (int)!!!!!а вот здесь должна быть 5!!!!!! . "'");

 

как получить пятеречку??? заранее спасибо!!!

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


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

Ajax-запросом отправляешь в контроллер, либо сохраняешь переменную в скрытое поле в шаблоне, а затем уже обрабатываешь в контроллере

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


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

Собственно все описано в заголовке 8)

 

Задача:

в шаблоне: к примеру получил переменную $per_zapr = '5';

 

в контроллере: к примеру делаю запрос в базу: $this->data['otvet_ot_bazi'] = $this->db->query("SELECT text FROM " . DB_PREFIX . "product_attribute  WHERE product_id = '" . (int)$this->request->get['product_id'] . "' AND attribute_id = '" . (int)!!!!!а вот здесь должна быть 5!!!!!! . "'");

 

как получить пятеречку??? заранее спасибо!!!

 

У вас постановка задачи противоречит логике работы движка. Данные из модели в контроллере передаются в реестр, а потом запускается шаблон, который собственно и получает данные из реестра. Как вы себе представляете передачу данных из шаблона в модель, когда модель до запуска шаблона уже отработала своё?

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


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

У вас постановка задачи противоречит логике работы движка. Данные из модели в контроллере передаются в реестр, а потом запускается шаблон, который собственно и получает данные из реестра. Как вы себе представляете передачу данных из шаблона в модель, когда модель до запуска шаблона уже отработала своё?

вот  в том то и петрушка, приходится нагружать шаблон циклами (foreach) и при наличии огромного количества атрибутов и опций произойдет переполнение памяти. соответственно выполнение скрипта прервется, поэтому я хочу с запасом себя обезопасить... хотя все работает и так....

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


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

Посмотрите как реализовано добавление отзывов на фронтэнде или любая страница админки, где вводятся параметры

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


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

вот  в том то и петрушка, приходится нагружать шаблон циклами (foreach) и при наличии огромного количества атрибутов и опций произойдет переполнение памяти. соответственно выполнение скрипта прервется, поэтому я хочу с запасом себя обезопасить... хотя все работает и так....

 

Ну на самом деле может и не совсем так. Вызывая в цикле обработку определенным данных вы можете зачищать переменные после прохождения каждого цикла, а значит рациональнее использовать память. Другое дело, что многократный вызов в цикле функций тех же моделей из шаблона (в принципе это не сложно делать ведь реестр в шаблонах доступен а, значит и загруженные в него модели, да и сама функция загрузки тоже) будет сильно тормозить работу. Но альтернатива - выборка данных с запасом в один заход в контроллере и передача их в шаблон для последующей обработки уже другими средствами (не SQL запросами а средствами PHP). Так может быть будет быстрее, потому что в базу не бегаете постоянно, но памяти это потребует намного больше. Так что тут нужно искать оптимум.

 

Главное - сейчас по вашей логике получается, что сначала нужно запустить контроллер, получить в шаблоне некоторое значение, записать его в реестр, потому из шаблона заново запустить контроллер, чтобы он уже мог получить переменную из реестра и потом выдать HTML-код для браузера. Не слишком ли сложно? Это явный признак ошибки проектирования логики вашего приложения.

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


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

советовать конечно можно много чего от аякса до итд, но смысл задачи я так и не понял.

 

Зачем из шаблона значение переменной отправляете опять в контроллер, когда сам контроллер ее и выдал вам??

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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