我有一個Symfony應用程序,它具有通過表單操作的用戶模型,以允許用戶更改其用戶名。用戶模型驗證失敗,如何確保使用「舊」值
該模型由Doctrine ORM提供支持,並在用戶名字段上使用UniqueEntity驗證約束,因此如果他們嘗試將用戶名更改爲另一個現有用戶的用戶名,則會被拒絕。
這部分邏輯工作正常。
但是,我通過應用程序容器將「當前用戶」對象公開爲在Twig中像全局一樣使用,因此我可以在每個頁面的標題中顯示當前登錄用戶的用戶名。
但是,當使用配置文件表單並且用戶輸入無效的用戶名時,該值在實體對象中保持「設置」狀態,因此即使驗證拒絕成功並且不會保留錯誤的用戶名,頁面呈現錯誤的用戶名。
有沒有簡單的方法來克服這一點?我能想到的唯一明顯的事情就是創建第二個叫做「全局」的用戶名,它在表單處理之前複製傳入請求上的用戶名值,並在Twig模板中使用它 - 但似乎有點遺憾到「用戶」和「用戶名」。
我的不好,我正在使用{{app.user}} - 在我的腦海中,我將其稱爲「全局」,儘管正如您指出的那樣,事實並非如此。 – andybee