Jump to content
Sign in to follow this  
EliasKoch

Как передавать данные между контроллерами

Recommended Posts

Доброго времени суток, вызываю в контроллере функцию через ajax 
 

 public function catalog_refresh() {
            $catalog_refresh= $this->load->controller('common/catalog_refresh');
            $this->response->setOutput($catalog_refresh);
        }

как мне в контроллер catalog_refresh передать некую переменную?

сам контроллер вот

<?php

    class ControllerCommonCatalogRefresh extends Controller
    {
        public function index()
        {

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

 

Share this post


Link to post
Share on other sites
public function controller($route, $data = array()) {

 

Share this post


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

public function controller($route, $data = array()) {

 

чет я не совсем понял эту функцию я прикручиваю в свой контроллер и...? я вот хочу что вот вроде этого

 public function catalog_refresh() {
            $catalog_refresh= $this->load->controller('common/catalog_refresh',data=array());
            $this->response->setOutput($catalog_refresh);
        }

и дальше я работаю с данными в контроллере

<?php

    class ControllerCommonCatalogRefresh extends Controller
    {
        public function index($data)
        {

            $this->load->model('catalog/product');
			my_perem=data['..'];
//и т.д.

 

Share this post


Link to post
Share on other sites

Подобный пример есть в движке.

Смотрите как загружаются модули и передаются настройки
catalog\controller\common\column_left.php
 

$output = $this->load->controller('extension/module/' . $part[0], $setting_info);

и далее, например
catalog\controller\extension\module\bestseller.php
 

public function index($setting) {

 

  • +1 1

Share this post


Link to post
Share on other sites
Только что, thentru сказал:

Подобный пример есть в движке.

Смотрите как загружаются модули и передаются настройки
catalog\controller\common\column_left.php
 


$output = $this->load->controller('extension/module/' . $part[0], $setting_info);

и далее, например
catalog\controller\extension\module\bestseller.php
 


public function index($setting) {

 

Спасибо за наводку, посмотрю!

Share this post


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

$this->response->setOutput($catalog_refresh);

Это лишнее

результат работы контроллера, уже выведет родительский контроллер

Share this post


Link to post
Share on other sites

Спасибо большое очень помогли!!! как вам плюсануть?

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  

  • Similar Content

    • By Benzin102
      День добрый!
      Написал функцию для админки для генерации некой инфы и сохранении её в БД. Сейчас идёт аяксовый запрос в контроллер, там фором прогоняется цикл и возвращается инфа с массивом нагенерированных штук. Контроллер возвращает стандартным "$this->response->setOutput(json_encode($json));" по завершению всего цикла. 
      Есть ли возможность воткнуть ответ в темплейт после каждой итеррации цикла?
    • By Techno1og
      Заметил в метрике странные метаморфозы - некоторые информационные страницы, то выпадают из поиска, то появляются,хаотично. Хочу найти связь данного явления со своими действиями или действиями модулей, нужно понять к какому модулю принадлежит этот кусок кода и что он выполняет?
       
      У страницы https://site.ru/dostavka.html
      изменился статус в поиске.
      Старый статус: В поиске
      Новый статус: Запрещено элементом noindex
       
      В controller/information.php :
         
       
    • By Snoop3000
      Добрый день всем. Делаю свою страницу вывода нужной информации на печать, где надо вывести данные с \admin\controller\sale\order.php. Оттуда все что мне надо я вытянул, но не могу добраться до фото товара (отдельно контроллера своего нету, делаю все через order.php).
      То есть, создана таблица, где должна быть фото товара и его параметры. Что только не пробовал, даже добавил в order.php контроллер:
      $this->load->controller('catalog/product'); $data['kartinka'] = $product['image']; Но в файле info.tpl и дальше $kartinka просто пустое значение
      <img src="<?php echo $kartinka; ?>" style="float:left"> Моих знаний не хватает, я не могу понять как передать простое значение $product['image'] в другое место, отличающее от product.tpl.
    • By GoldenScrew
      Здравствуйте,
      создавая свой контроллер, подключил загрузил в него уже существующий
       
       
      в подключенном контроллере есть переменная
       
       
      как теперь мне получить значение переменной $data['test']?
    • By EliasKoch
      Доброго времени суток. стоит задача: имеется некторый контроллер в нем есть переменная 
      $data['payment'] = $this->load->controller('payment/moneta); в нее подгружается контроллер менета.php
      Сам контроллер вот такой
      <?php class ControllerPaymentPayanywayMoneta extends Controller { public function index() { $data['button_confirm'] = $this->language->get('button_confirm'); $data['continue'] = $this->url->link('checkout/success'); $this->load->model('checkout/order'); $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']); $this->model_checkout_order->addOrderHistory($this->session->data['order_id'], $this->config->get('config_order_status_id')); $mnt_id = $this->config->get('payanyway_mnt_id'); $order_id = $this->session->data['order_id']; $currency = $this->config->get('payanyway_mnt_currency_code'); $mnt_test_mode = $this->config->get('payanyway_mnt_test_mode'); $mnt_dataintegrity_code = $this->config->get('payanyway_mnt_dataintegrity_code'); $amount = $this->currency->format($order_info['total_with_koef'], $currency, '', false); $amount = number_format($amount, 2, '.', ''); $signature = md5("{$mnt_id}{$order_id}{$amount}{$currency}{$mnt_test_mode}{$mnt_dataintegrity_code}"); $data['action'] = "https://{$this->config->get('payanyway_mnt_server')}/assistant.htm"; $data['mnt_id'] = $mnt_id; $data['order_id'] = $order_id; $data['currency'] = $currency; $data['amount'] = $amount; $data['mnt_signature'] = $signature; $data['mnt_test_mode'] = $mnt_test_mode; $data['paymentSystemUnitId'] = 1015; $data['mnt_success_url'] = $this->url->link('payment/payanyway/success'); $data['mnt_fail_url'] = $this->url->link('checkout/checkout', '', 'SSL'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/payanyway_moneta.tpl')) { return $this->load->view($this->config->get('config_template') . '/template/payment/payanyway_moneta.tpl', $data); } else { return $this->load->view('payment/payanyway_moneta.tpl', $data); } } } ?> Хочу обратить внимание на строку
      $amount = $this->currency->format($order_info['total_with_koef'], $currency, '', false); Здесь берутся данные из бд.(это код оплаты заказа). во время заказа "динамически" в бд меняется Цифра ['total_with_koef'] но при вновь выполнении  $data['payment'] = $this->load->controller('payment/moneta);     берутся не обновленные данные а загруженные впервый раз. Как мне получчить обновленные данные?
  • 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.