【问题标题】:Laravel, can only flash error messages within controller?Laravel,只能在控制器内闪烁错误消息吗?
【发布时间】:2020-08-18 02:52:01
【问题描述】:

我正在使用它在我的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 使用表单请求,但在尝试闪烁 (toastr) 错误消息时一直遇到问题。

你们有没有一个与表单请求一起使用的 toastr 示例?我已经阅读了 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();
}

【问题讨论】:

  • 你遇到了什么问题?
  • 我无法使用表单请求让 toastr 显示错误。 Laravel 发布没有错误,只是返回表单而不显示任何内容。将使用示例代码更新我的帖子,该代码曾经有效。
  • 我想我的主要问题是如何抓住错误并将其与 Toastr 一起使用 - 使用表单请求时。
  • 如果您回显 {{ $errors->all() }} 之类的内容(在 @if ($errors->any()) 内以防止出现错误),您会看到任何错误吗?
  • 我总是使用会话来获取错误消息。

标签: php laravel


【解决方案1】:

在您的表单请求中使用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 中对我有用

试试看,谢谢!

【讨论】:

  • 对我也有用!我正在使用 laravel 8.x
猜你喜欢
  • 1970-01-01
  • 2013-09-22
  • 1970-01-01
  • 2013-10-18
  • 2016-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多