Как Cake PHP передает параметры от одного действия контроллера к другому представлению
У меня есть метод поиска в моем WorkersController.php
как следующее:
public function search() {
$conditions = array();
if(!empty($this->request->data)){
foreach($this->request->data['Search'] as $field => $search_condition ) {
if(!empty($search_condition))
$conditions["$field LIKE "] = "%$search_condition%";
}
}
if(!empty($conditions)){
$this->Worker->recursive = 0;
$workers = $this->Worker->find('all',array('conditions' => $conditions));
}
$this->redirect(array('action' => 'index','search' ));
}
В методе, который я называю redirect()
, то страница переходит к index.ctp
где я хочу получить $workers
как это:
if($this->request->params['pass']==array('search')){
if (empty($workers)){
echo('No result found!');
}else{
foreach ($workers as $worker){
//do something
}
}
}
Но я просто не могу получить $workers
как я могу передать это от search()
в index.ctp
?
Большое спасибо!
2 ответа
Решение
Вы можете попробовать и использовать сессию для этого случая.
// в controller1 $this->Session->write('работник', $ работники);
// в controller2 $workerData = $this->Session->read('worker');
Да, вы можете использовать в соответствии с приведенным ниже синтаксисом
$this->redirect(array('controller' => 'workers', 'action' => 'index', 'pass' => 'param', 'pass1' => 'param1'));
для более подробной информации вы можете использовать документ