我正在使用Cake
PHP并尝试了解使我的应用程序保持一致和合理的最佳方法.
现在我正在尝试使用模型数据验证并在视图中处理验证错误,我怀疑如果我想在返回的错误中插入一些链接,我应该怎么做,例如忘记密码.
使用(如果可能的话)HtmlHelper在模型中返回应用程序内的一致链接,或者我应该考虑另一种方式?
<?PHP App::import('Helper','Html'); class User extends AppModel { var $name = 'User'; var $validate = array ( 'email' => array ( 'checkEmail' => array ( 'rule' => array('email',true),'message' => 'Email not valid message.' ),'checkUnique' => array ( 'rule' => 'isUnique','message' => 'This email is allready in the db,if you forgot the password,'.(string)$this->Html->link('click here',array('controller' => 'users','action' => 'password-recover')).'.' ) ) // the rest of the code...
这不起作用,因为我似乎无法用HTML字符串链接消息字符串.
是否存在最聪明的方法,或者我应该简单地插入没有HtmlHelper的html字符串?
解决方法
如果你真的想在你的验证消息中使用HTML,CakePHP提供了一种方法来实现这一点,没有破坏Cake,没有编写大量代码.
在您的$validation中,只需使用您希望向用户呈现的任何HTML.
在您的视图中,当您创建FormHelper::input($fieldName,array $options)
时,将以下数组传递给$options:
$options = array('error' => array( 'attributes' => array('escape' => false) ))
See this page了解更多关于$options [‘error’] …选项的信息.
或者,如果您希望所有输入都没有HTML转义,则可以在创建表单时传递$options['inputDefaults']
.