我有一个Horse
对象,其中包含completed
个变量(文本)。我希望能够在视图中单击set complete
,然后将该匹配的completed
变量设置为“是”。在此之后,我们会将用户重定向到tasks / index。我的想法是在Controller中创建setcomplete($id)
函数,所以我可以通过/setcomplete/4
并且那个马的标志会改变。
我为它创建了一个基本视图,但我的想法是我不需要视图,但我不知道如何解决这个问题....我正在考虑使用$this->render()
或其他东西这种性质。
这是基本代码...传入id然后更改变量,然后重定向到tasks / index。
我没有收到错误......它只是不起作用,就是这样。
public function setcomplete($id = null) {
if (!$this->Task->exists($id)) {
throw new NotFoundException(__('Invalid task'));
}
if ($this->request->is(array('post', 'put'))) {
$this->set('completed', 'yes');
if ($this->Task->save($this->request->data)) {
$this->Session->setFlash(__('The task has been updated.'));
return $this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The task could not be saved. Please, try again.'));
}
} else {
}
}
答案 0 :(得分:1)
根据我对你的问题的理解。您要为completed
模型设置yes
到Task
。
我想你在这里做错了。
what about the $this->request->data here?
是否包含您要为任务模型保存的数据,如下面的结构
Array(
'Task' => Array(
'id' => 4, // for eg..
'completed' => 'yes'
)
)
如果不是
你可以通过这样做解决问题。 [假设您没有$this->request->data
]
public function setcomplete($id = null) {
if (!$this->Task->exists($id)) {
throw new NotFoundException(__('Invalid task'));
}
$this->Task->id = $id;
$this->Task->set('completed', 'yes')
if ($this->Task->save()) {
$this->Session->setFlash(__('The task has been updated.'));
return $this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The task could not be saved. Please, try again.'));
}
}