2011-06-17 44 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