[函数isActive
返回false
时,我试图阻止记录中的更新。
Foo.php
// My Class
public function isActive() {
return false;
}
FooForm.php
// My Form
public function validateForm()
{
$this->validate($this->request, [
'field_1' => 'required',
'field_2' => 'required',
'field_3' => 'required',
'isActive' => 'boolean:true'
]);
}
预期:因为isActive
返回false
,所以阻止更新。
现在:更新没有任何问题。
编辑
isActive
不能是数据库属性。
您可能正在寻求实现custom validation rule。
根据链接的文档,有几种方法可以做到这一点。这是使用闭包方法的示例:
public function validateForm()
{
$this->validate($this->request, [
'field_1' => 'required',
'field_2' => 'required',
'field_3' => 'required',
'isActive' => function ($attribute, $value, $fail) {
if (!$this->isActive()) {
$fail('isActive is false');
}
}
]);
}
如果需要将其与其他验证规则链接在一起,也可以将闭包放入数组中,如下所示:
'isActive' => [
'required',
function ($attribute, $value, $fail) {
if (!$this->isActive()) {
$fail('isActive is false');
}
}]