Laravel,只能在控制器内刷新错误消息吗?

时间:2018-10-18 12:46:38

标签: php laravel

我正在使用它来在我的UserController(使用Toastr)中刷新错误消息

public function update(Request $request)
{

    $validator = Validator::make($request->all(), [
        'name'     => 'required|max:200',
        'email'    => 'required|email|unique:users,email,'. Auth::id(),
        'phone'    => 'alpha_num|nullable|min:8',
    ]);

    if ($validator->fails()) {

        Toastr::error('Changes not saved', 'Error');
        return back();

    }

    $user = Auth::user();

    $user->name = $request->input('name');
    $user->email = $request->input('email');
    $user->phone = $request->input('phone');

    $user->save();

    Toastr::success('Changes saved', 'OK');

    return back();

}

我想为validation使用Form Request,但是在尝试刷新(toastr)错误消息时仍然遇到问题。

你们中的一个人有一个与Form Request一起使用的烤面包机的例子吗?我已经看了10遍文档,但是找不到解决方法:(

https://laravel.com/docs/5.7/validation

这曾经在大约一年前起作用,但现在不再起作用:

# Error messages
protected function formatErrors(Validator $validator)
{

    $messages = $validator->messages();

    foreach ($messages->all() as $message)
    {
        Toastr::error($message, 'Fejl');
    }

    return $validator->errors()->all();
}

1 个答案:

答案 0 :(得分:0)

在表单请求中使用withValidator()

但是我正在使用yoeunes/toastr

中的烤面包机软件包
 public function withValidator($validator)
    {
        $messages = $validator->messages();

        foreach ($messages->all() as $message)
        {
            toastr()->error ( $message, 'Error');
        }

        return $validator->errors()->all();

    }

它在Laravel 7.x中对我有效

尝试一下,谢谢!