当函数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不能是数据库属性。
发布于 2020-04-08 03:28:31
您可能希望实现一个自定义验证规则。
根据链接文档,有几种方法可以做到这一点。下面是一个使用闭包方法的示例:
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');
}
}]https://stackoverflow.com/questions/61090166
复制相似问题