2012-02-16 5 views
1

существует ли способ передачи данных с контроллера на другой контроллер с использованием php framework CodeIgniter? Я имею в виду, что у меня есть некоторые данные в контроллере, и я передам их другому контроллеру. ..Передача данных с контроллера на другой контроллер

+1

Почему не просто передать данные модели взаимодействующего с ним вместо того, чтобы передавать его в контроллер? – cspray

+0

@CharlesSprayberry вы можете это сделать? Можете ли вы передать var1 в model1 из контроллера1 и получить var1 из model1 в контроллере2? – stormdrain

+0

Я согласен @CharlesSprayberry, это самое лучшее, что нужно сделать. – tomexsans

ответ

0

$_POST данные передадут данные вместе с другим контроллером. Вы можете также пользовательский PARAMS так:

class Test extends CI_Controller{ 
    function page($param=""){ 
     echo $param; 
    } 
} 

http://site.local/test/page/blah даст вам пустую страницу со словом «бэ». Однако не рекомендуется передавать данные через params вне int (например, id) ... часто вы будете иметь запрещенные символы url, если не используете int.

1

Ваш вопрос разыгрывает цель шаблона MVC. Контролерам не нужно «знать друг о друге». У вас могут возникнуть серьезные проблемы с соединением, если это так.

Если вы можете, попробуйте «передать» информацию через URI (который без гражданства RESTful), как предлагает @stormdrain. Если вы не можете поддерживать безгражданство, перейдите к данным сеанса.

Данные сеанса немного больше подходят для того, что вы делаете, особенно если вам нужно, чтобы приложение «запомнило» то, что произошло ранее в сеансе. CI имеет довольно хорошую внутреннюю библиотеку для этого (хотя это не без некоторых документированных недостатков, справедливое предупреждение):

http://codeigniter.com/user_guide/libraries/sessions.html

+0

Не использует ли ограничение сеанса до 4kb данных? Если вы не используете db_session? Возможно, я тоже недопонимаю :) – stormdrain

+0

Это правильно. Размер хранилища файлов cookie браузеров становится ограниченным, если не использовать базу данных – landons

Смежные вопросы