我遇到了在CakePHP中处理我项目的问题。
这是我的代码:
function publish_link()
{
Configure::write('debug', 0);
if($this->RequestHandler->isAjax())
{
$items = $_POST['image_id'];
$this->set('selected_list', $items);
$this->layout = 'ajax';
$this->render('publish');
exit;
}
}
function publish($items = null) {
$this->layout = 'box';
if(!empty($this->data['User']))
{
//some code
}
}
这里使用Ajax调用publish_link操作,并将其渲染到另一个视图文件publish.ctp。
它渲染它并且我可以正确地获得set_list的设置值,但是在渲染了这个ctp后,它的控制器动作publish()被调用并清空了从publish_link()设置的变量selected_list。
我无法理解如何处理这个问题。
请帮帮我。
由于
答案 0 :(得分:0)
我相信,您正试图将变量从一个动作传递到另一个动作。这不是cakephp的工作方式。
要在操作之间共享变量,您应该将它们封装在beforeFilter()
函数中,如
function beforeFilter() {
if(!empty($_POST['image_id'])) {
$items = $_POST['image_id'];
$this->set('selected_list', $items);
}
}