使用QueryController我要求$ querySCP-> text和$ querySD-> text
我将这些参数传递给具有$ this-> request-> session ...的
的ResultController我尝试在view.ctp中访问$ querySCP和$ querySD。
我有以下代码:
控制器查询:
public function add()
{
$querySCP = $this->Query->newEntity();
$querySD = $this->Query->newEntity();
if ($this->request->is('post')) {
$this->request->session()->write(
'my-stuff',
$this->request->data);
$this->redirect('/result/view');
}
}
控制器结果:
public function view()
{
$myStuff = $this->request->session()->read('my-stuff');
if (!$myStuff) {
$this->Flash->error(__('Unable.'));
return $this->redirect('/start/point');
}
$this->set($myStuff); //here i tried to pass parameters to the view.ctp
}
查看view.ctp:
<?php $myStuff->querySCP->text?>
<?php $myStuff->querySD->text?>
我如何访问这些参数?它们是$ myStuff的方法吗? 感谢。
答案 0 :(得分:1)
我不会详细介绍如何使用实体,但是您尝试做的事情的基础知识将会是这样的。
有关如何修补实体等的更多信息,请查看文档:{{3}}
控制器1:
public function add()
{
$someArray = ['a' => 'b', 'c' => 'd'];
// write the array to a session variable
$this->request->session()->write(
'my-stuff',
$someArray);
// redirect by using array will respect CakePHP routes defined in `routes.php`
$this->redirect(['controller' => 'Controller2', 'action' => 'view']);
}
控制器2:
public function view()
{
// retrieve our array from the session store
$myStuff = $this->request->session()->read('my-stuff');
// redirect if session variable is not set or isn’t an array
if (!$myStuff || !is_array(myStuff)) {
$this->Flash->error(__('Error'));
return $this->redirect(['controller' => 'Controller1', 'action' => 'add']);
}
// data = the variable name in the View later on
$this->set('data', $myStuff);
}
查看view.ctp:
<?= $data['a'] ?> /
<?= $data['c'] ?>
将输出:
b / d
答案 1 :(得分:0)
$this->request->data
已被弃用
Illegal offset type
我强烈建议您一般在php上做一些入门教程,并从一开始就做the CakePHP blog tutorial,因为它会教你如何使用框架。
至少阅读以下主题:
我不会为你咀嚼代码,但这是你需要做的事情:将两个实体放在一个数组中,将数组传递给会话,从会话中读取该数组,将其设置为视图。但你首先要做的是了解如何做你想做的事情。阅读链接的文档。