【问题标题】:Validation rules not working : Yii验证规则不起作用:Yii
【发布时间】:2014-04-18 09:28:57
【问题描述】:

我的 webapp 中有两个字段,并且已经给出了验证规则以使其成为强制性的。但是当我提交表单时,即使字段为空,它也会被提交。

型号:

public function rules()
{
return array(
array('fname, mobile, address', 'required'),
array('econtact, mobile', 'length', 'max'=>10),
array('fname', 'length', 'max'=>40),
array('lname', 'length', 'max'=>25),
    array('subject, body', 'required'),
array('filename', 'file', 'types'=>'jpg, gif, png,pdf'),
}

控制器:

public function actionEmail()
{
$model=new Contactlist;
if(isset($_POST['Contactlist']))
{
$model->attributes=$_POST['Contactlist'];
if($model->validate())
{
require("class.phpmailer.php");
$mail = new PhpMailer;
$mail->IsSMTP();
$mail->SMTPSecure = "ssl";
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->SMTPSecure = true;
$mail->Username = 'from@gmail.com';
$mail->Port = '465';
$mail->Password = '****';
$mail->SMTPKeepAlive = true;
$mail->Mailer = "smtp";
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth   = true;
$mail->CharSet = 'utf-8';
$mail->SMTPDebug  = 0;
$mail->SetFrom('frm@gmail.com','from');
$mail->Subject = $_POST['Contactlist']['subject'];
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!';
$mail->MsgHTML($_POST['Contactlist']['body']);
$mail->Send();
}}}

指定的验证规则都不起作用。我尝试在模型的 rules() 方法中回显文本。这工作正常,这意味着“$model->validate()”仅将其重定向到 rules() 方法。但我不明白这里出了什么问题

【问题讨论】:

  • 显示您的完整模型和您的完整操作电子邮件和视图。
  • 如何处理错误?也许他们只是不玩
  • 我已经编辑了,请看一下。谢谢
  • hum 可能会尝试在长度规则中将 allowEmpty 设置为 false
  • 这可能是一件小事,但为什么你有两个“必需”的规则。将它们全部合并为一个规则?例如array('fname, mobile, address, subject, body', 'required'),

标签: php yii


【解决方案1】:

如果可以的话,请在控制器中为模型对象添加场景,并在其中创建模型对象

相反

$model=new Contactlist;

 $model=new Contactlist('contactus');

然后进入您的模型并为所需规则添加场景

array('fname, mobile, address', 'required','on'=>'contactus'),

在这一切之后,请删除您最后需要的规则或添加其中任何一个,否则您必须为此创建新场景。

如果不工作就给我发消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 2018-03-12
    • 1970-01-01
    相关资源
    最近更新 更多