Php Laravel validateForm:在不活动时防止更新
当函数Php Laravel validateForm:在不活动时防止更新,php,laravel,laravel-5,Php,Laravel,Laravel 5,当函数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',
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
不能是数据库属性。您可能希望实现一个
根据链接的文档,有两种方法可以做到这一点。下面是一个使用闭包方法的示例:
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');
}
}]
好吧,
'isActive'
应该是来自$this->request
的,而不是一个方法。