2011-06-17 120 views
0

有什麼方法可以在我的模型代碼中爲我的消息設置佈局?CakePHP - 自定義消息

這裏是我的模型:

var $validate = array( 
     'email' => array(  
     'rule' => array('email', true),   
     'message' => 'Please supply a valid email address.' 
     ) 
    ); 

回答

2

這可以使用CakePHP進行。但是,你有你的擔憂混淆。該模型用於數據收集,操作和按摩。數據的佈局由View負責。在CakePHP中,特別是Form Helper。

有關如何指定數據驗證消息自己的佈局簽出更多的信息:

http://book.cakephp.org/view/1639/options-inputDefaults

他們提供關於究竟是如何做到這一個非常偉大的代碼示例。

我也高度建議你通讀整本書。它將證明無價。

編輯:答案澄清評論

後,您將創建一個element並把它放在app/views/elements。應該使用普通的Cake慣例命名文件。我們一起去flash_error

您可以將其設置爲您想要顯示的HTML。爲了確保將顯示你的消息簡直走到哪裏都是合適

<?php echo $message; ?>

這是第1步

第2步是在您的通話$this->setFlash()傳遞適當的參數添加PHP的這一點。所以,你的新的呼叫看起來像這樣與我們上面提到的元素:

$this->setFlash($message, 'flash_error');

現在你setFlash消息會使用在步驟1中想不同的佈局定義的佈局?只需創建一個新元素並傳遞新元素名稱即可。

setFlash()方法有2個更多的參數派上用場(特別是如果你想在同一頁上有多個flash()消息)。這本書的另一個鏈接:

http://book.cakephp.org/view/1313/setFlash

+0

查爾斯,我很欣賞你的話。會發生什麼是我知道如何在我的控制器中使用setFlash()的不同佈局,但不知道我的模型類中的$ validate的消息。 –

+0

http://book.cakephp.org/view/1637/flashElement 具有諷刺意味的是,我實際上是將這個小小的內容添加到了CakePHP手冊中。這讓我輕笑。 – cspray

+0

或者,如果您未使用Auth組件...請給我一點時間,我將只編輯我的原始答案 – cspray