添加与表单

时间:2017-03-16 10:08:02

标签: php laravel laravel-5.4

我想在表单上添加验证。我的实际形式有效,这里是:

public function store(Request $request, $id)
{
    $this->validate($request, [
        'subject' => 'required',
        'body' => 'required',
    ]);

    // Do something if everything is OK.
}

现在,我想检查用户是否也“有效”。如下所示:

\Auth::user()->isActive();

如果用户未处于活动状态,则返回错误以及其他验证错误

我可以将一些内容附加到与表单本身无关的验证器吗?我的意思是如果用户不活动,我想在其他错误中添加错误。

1 个答案:

答案 0 :(得分:1)

该代码仅验证请求变量(validate()函数的第一个参数)。所以你必须在请求中加入一些来验证它。它将规则应用于给定的对象/数组。

$request->is_active = Auth::user()->isActive();
$this->validate($request, [
    'subject' => 'required',
    'body' => 'required',
    'is_active' => true //or whatever rule you want
]);

无论如何,我从未尝试过,所以不确定它会起作用。通常的方法是做一个if

if ( !Auth::user()->isActive() ) {
    return redirect->back()->withErrors(['account' => 'Your account is not active, please activate it']);
}

//continue here