Validation 如何显示CakePHP的内置验证错误消息?
我正在尝试将cakePHP的内置验证函数用于我的注册/登录页面Validation 如何显示CakePHP的内置验证错误消息?,validation,cakephp,Validation,Cakephp,我正在尝试将cakePHP的内置验证函数用于我的注册/登录页面 <?php class User extends AppModel { var $name = 'User'; var $validate = array( 'name' => VALID_NOT_EMPTY, 'password' => VALID_NOT_EMPTY,
<?php
class User extends AppModel
{
var $name = 'User';
var $validate = array(
'name' => VALID_NOT_EMPTY,
'password' => VALID_NOT_EMPTY,
'email_id' => VALID_EMAIL
);
}
Index.ctp
<p>Please fill out the form below to register an account.</p>
<?php
echo $form->create('User', array('action' => 'register'));
echo $form->input('name');
echo $form->input('email_id');
echo $form->input('password');
echo $form->end('Register');
?>
<h3>Login</h3>
<?php
echo $form->create('User',array('action'=>'login'));
echo $form->input('email_id');
echo $form->input('password');
echo $form->end('Login');
?>
可能会发生冲突,因为您正在创建两个使用相同模型的表单。如果您对登录表单进行注释,那么是否会显示错误消息?只有在“视图/用户”文件夹中有单独的register.ctp文件时,才会显示错误消息。如果我将控件重定向到主页面,当注册失败时,我会收到会话setFlash消息,但不会收到错误消息。只有当注册操作有单独的视图文件时,才会显示错误消息。与setFlash不同,验证消息将加载回视图中,并且不会存储在会话中。如果重定向,则会丢失错误消息。对于register方法,您可能需要在控制器中使用$this->render'index',因此不需要重定向。
<p>Please fill out the form below to register an account.</p>
<?php
echo $form->create('User', array('action' => 'register'));
echo $form->input('name');
echo $form->input('email_id');
echo $form->input('password');
echo $form->end('Register');
?>
<h3>Login</h3>
<?php
echo $form->create('User',array('action'=>'login'));
echo $form->input('email_id');
echo $form->input('password');
echo $form->end('Login');
?>
function register()
{
if (!empty($this->data))
{
if ($this->User->save($this->data))
{
$this->Session->setFlash('Your registration information was accepted.');
$this->render('home');
}
else
{
$this->Session->setFlash('Your registration failed.');
$this->render('index');
}
}
}