2015-06-23 49 views
1

如果在保存後沒有重定向(如果您保持在同一個動作/頁面上),保存後如何重置實體?保存後重置控制器中的實體(或創建新的空實體)

例如:我有一個列出所有用戶的頁面。在同一頁面上有添加新用戶的表單。

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); 
} 

我試圖閃光燈消息後添加$user = '';在08行,以及$user = $this->Users->newEntity();

但頁面上的形式仍然包含/顯示最後保存的用戶的值(我想當保存成功時有一個空的表單)。

+2

你*不*只是停留在同一頁上。保存是來自POST的結果,因此您需要在之後進行GET(重定向)以遵循PRG模式,爲避免出現其他問題,您必須遵循PRG模式。然後你的問題就解決了。所以總是重定向,在你的情況下,只是再次相同的URL。問題解決了 - 通過設計。 – mark

回答

0

我不知道如何標記爲回答我的問題評論,所以我引用它:

你不只是停留在同一頁上。保存是來自POST的結果,因此您需要在之後進行GET(重定向)以遵循PRG模式,爲避免出現其他問題,您必須遵循PRG模式。然後你的問題就解決了。所以總是重定向,在你的情況下,只是再次相同的URL。問題解決了 - 通過設計。 - 馬克

謝謝@馬克

相關問題