CakePHP-自定义消息

CakePHP-自定义消息,cakephp,message,customization,Cakephp,Message,Customization,有没有办法在我的模型代码中为我的消息设置布局 这是我的模型: var $validate = array( 'email' => array( 'rule' => array('email', true), 'message' => 'Please supply a valid email address.' ) ); 这可以通过CakePHP实现。然而,你的担心混

有没有办法在我的模型代码中为我的消息设置布局

这是我的模型:

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

这可以通过CakePHP实现。然而,你的担心混淆了。该模型用于数据收集、操作和按摩。数据的布局由视图负责。在CakePHP中,特别是表单帮助器

有关如何为数据验证消息指定自己的布局的详细信息,请查看:

它们提供了一个非常好的代码示例,说明了如何做到这一点

我还建议你通读整本书。这将证明是无价的

编辑:根据评论进行澄清后回答

您将创建一个
元素
,并将其放入
app/views/elements
。应该使用普通的蛋糕约定命名文件。让我们看一下
flash\u error

您可以将其设置为希望显示的HTML。为了确保消息被显示,只要在适当的地方添加这一点PHP即可

这是第一步

步骤2是在您的
$this->setFlash()
调用中传递适当的参数。因此,您的新调用与上面命名的元素类似:

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

现在,setFlash消息将使用步骤1中定义的布局。想要不同的布局吗?只需创建一个新元素并传递新元素名称

setFlash()方法还有另外两个方便的参数(特别是如果您希望在同一页上有多条flash()消息)。本书的另一个链接:


查尔斯,我很感激你的话。发生的事情是,我知道如何在控制器中为setFlash()使用不同的布局,但不知道如何在模型类中为来自$validate的消息使用不同的布局。具有讽刺意味的是,实际上是我在CakePHP手册中添加了这个小片段。这让我笑了。或者,如果你不使用Auth组件…给我一点时间,我会编辑我的原创answer@user802616如果您想以正常的“默认”蛋糕方式显示模型验证错误,请参阅我的预编辑答案。表单帮助器专门设置为获取这些验证错误消息,并在相应的表单字段下显示该消息。