2015-02-08 14 views
0

我需要在視圖中顯示用戶友好的錯誤消息,並且想知道什麼是最佳解決方案。我可以使用錯誤控制器顯示和錯誤頁面,但這不是我想要實現的。我需要處理任何模型中的所有自定義錯誤消息,並在您所在的視圖中顯示錯誤。例如:在MVC視圖中使用PHP顯示自定義錯誤消息

我在「用戶」控制器中。當創建新用戶時,PHP模型代碼檢查是否存在相同的用戶名,如果存在,我想在視圖中顯示消息,或者在頭中可能有這樣的內容:echo $error;其中顯示任何錯誤消息,我已設置爲顯示任何模型如果發生。在模型

實例錯誤消息:

if ($p0 > 0) { 
     $IsValid = false; 
     log::LOG_USER_ERROR("This user already exist!", $username); 
     exit("This user already exist! </br> "); 
    } 

這個代碼寫在成功的日誌文件中的錯誤,但是我怎麼在我在同一視圖顯示錯誤消息? exit()在空白頁面顯示消息。我需要在相同的視圖和設計中以紅色塊顯示它。

+0

不要從你的模型調用靜態方法,這將是一個正確的測試。而且絕對不要退出那裏,這會使測試更加困難。可以返回一個錯誤條件,然後在你的控制器中對它做些什麼。這聽起來像你可以在你的佈局(包裝所有頁面模板的通用模板)中渲染它。 – halfer 2015-02-08 16:36:34

+0

是的,這是正確的方式,只是不知道如何實現它。我曾嘗試在模型中返回false,然後以某種方式獲取控制器中返回的假。從控制器很容易顯示消息在視圖中,但只是無法弄清楚。有沒有例子?謝謝 – user2693802 2015-02-15 23:53:05

+0

目前這有點寬泛,如果不知道整個框架的結構,很難回答。我認爲你最好的選擇是看看一個流行的MVC框架,並通過他們的例子進行工作。然後,您將能夠將其結構應用於您自己的框架。也許Laravel,Slim或Symfony? – halfer 2015-02-16 00:11:16

回答

0

exit()終止當前腳本,所以View的代碼不會被執行。

相反,視圖的一部分應該是顯示消息的區域。然後,您可以將錯誤消息放入視圖顯示給該區域中的用戶的變量(可能是一組消息)中。

+0

嗨bobbye,我已經添加exit()來檢查語句是否執行。我喜歡用某種函數來替換exit(),以便將false條件返回給控制器,然後從控制器中在視圖中呈現消息 – user2693802 2015-02-15 23:56:05

相關問題