Php Yii2中的模型表单规则和验证
例如,我有模型表单Php Yii2中的模型表单规则和验证,php,yii,yii2,Php,Yii,Yii2,例如,我有模型表单MySubmitForm: use yii\base\Model; class MySubmitForm extends Model{ public $value1; public $value2; public $value3; public function rules(){ return [['value1', 'value2'],'required']; } } 这里我有两个必需的参数($value1
MySubmitForm
:
use yii\base\Model;
class MySubmitForm extends Model{
public $value1;
public $value2;
public $value3;
public function rules(){
return [['value1', 'value2'],'required'];
}
}
这里我有两个必需的参数($value1
,$value2
),我希望其中一个是必需的,或者我希望只有当$value1
和$value2
都为空时,用户才得到错误
我可以从这个表单模型中实现这一点吗 您可以在验证规则中使用自定义验证函数 可能的选择: 1)选择最重要的相关字段并向其添加错误 2)选择多个重要的相关字段,并向其添加相同的错误消息(我们可以在传递之前将消息存储并传递到单独的变量中,以保持代码干燥) 3)我们可以使用notexisting属性名称来添加错误,比如说
all
,因为此时不检查属性是否存在
public function rules()
{
return [['value1', 'value2'],'yourCustomValidationMethod'];
}
public function yourCustomValidationMethod()
{
// Perform custom validation here regardless of "name" attribute value and add error when needed
if ($this->value1=='' && $this->value2=='') {
//either use session flash
Yii::$app->session->setFlash('error','You need to provide one of the fields');
//or use model error without any specific field name
$this->addError('all', 'Your error message');
}
}
注意:您可以使用
会话闪存
或模型
来通知错误使用,您可以随意使用它刚才为您添加了一个答案,看看这是否对您有帮助。非常有用的答案很高兴我能帮您解决:)