首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel validateForm:在不活动时防止更新

问Laravel validateForm:在不活动时防止更新
EN

Stack Overflow用户
提问于 2020-04-07 22:08:18
回答 1查看 47关注 0票数 0

当函数isActive返回false时,我试图防止记录中的更新。

Foo.php

代码语言:javascript
复制
// My Class

public function isActive() {
    return false;
}

FooForm.php

代码语言:javascript
复制
// My Form

public function validateForm()
{
    $this->validate($this->request, [
        'field_1'      => 'required',
        'field_2'      => 'required',
        'field_3'      => 'required',
        'isActive' => 'boolean:true'
    ]);
}

期望:阻止更新,因为isActive返回false。

现在:更新没有任何问题。

编辑

isActive不能是数据库属性。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-08 03:28:31

您可能希望实现一个自定义验证规则。

根据链接文档,有几种方法可以做到这一点。下面是一个使用闭包方法的示例:

代码语言:javascript
复制
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');
            }
        }
    ]);
}

如果需要将其与其他验证规则链接起来,还可以将闭包放入如下所示的数组中:

代码语言:javascript
复制
'isActive' => [
    'required',
    function ($attribute, $value, $fail) {
        if (!$this->isActive()) {
            $fail('isActive is false');
        }
    }]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61090166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档