我想在表单上添加验证。我的实际形式有效,这里是:
public function store(Request $request, $id)
{
$this->validate($request, [
'subject' => 'required',
'body' => 'required',
]);
// Do something if everything is OK.
}
现在,我想检查用户是否也“有效”。如下所示:
\Auth::user()->isActive();
如果用户未处于活动状态,则返回错误以及其他验证错误。
我可以将一些内容附加到与表单本身无关的验证器吗?我的意思是如果用户不活动,我想在其他错误中添加错误。
答案 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