如果保存后没有重定向,如何在保存之后重置实体(如果你停留在同一个动作/页面上)?
示例:我有一个列出所有用户的页面。在同一页面上有添加新用户的表单。
public function index() {
$this->set('listallusers', $this->Users->find('all'));
$user = $this->Users->newEntity();
if ($this->request->is('post')) {
$user = $this->Users->patchEntity($user, $this->request->data );
if ( $this->Users->save($user) ) {
$this->Flash->succeed('User saved.');
// line 8
} else {
$this->Flash->error('There is an error.');
}
}
$this->set('user', $user);
}
我尝试在第08行的Flash消息后添加$user = '';
,以及$user = $this->Users->newEntity();
但是页面上的表单仍然包含/显示上次保存的用户的值(我希望在保存成功时有一个空表单。)
答案 0 :(得分:0)
我不知道如何将评论标记为我的问题的答案,所以我引用它:
您不只是停留在同一页面上。保存是POST的结果,因此您需要在之后进行GET(重定向)以遵循PRG模式,您必须遵循PRG模式有几个原因以避免出现其他问题。然后你的问题就解决了。所以总是重定向,在你的情况下再次重定向到相同的URL。问题解决了 - 按设计。 - 标记
谢谢@mark