Проверка Laravel не показывает мне ошибки в представлении - PullRequest
0 голосов
/ 05 марта 2019

У меня это в контроллере ...

public function store(Request $request)
{
    $this->validate($request, [
        'name' => 'required',
        'category_id' => 'required',
        'description' => 'required',
        'price' => 'required',
        'long_description' => 'required'
    ]);

    $product = new Product();
    foreach ($request->all() as $key => $value) {
        if ($key !== '_token') $product->$key = $value;
    }
    $product->save();

    return redirect('/admin/products');
}

И это в представлении ...

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{‌{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

Форма без проверки работает отлично. Но я не понимаю, почему он не показывает мне ошибки в представлении при перенаправлении.

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Я уже решил. Проблема была в том, что у меня был почтовый маршрут внутри api.php. Переместив его в web.php, он работает.

0 голосов
/ 05 марта 2019

Вам нужно сделать что-то вроде этого -

public function store(Request $request)
{
    $request->validate($request, [
        'name' => 'required',
        'category_id' => 'required',
        'description' => 'required',
        'price' => 'required',
        'long_description' => 'required'
    ]);

    if (!$validator->fails()) {
        $product = new Product();
        foreach ($request->all() as $key => $value) {
            if ($key !== '_token') $product->$key = $value;
        }
        $product->save();

        return redirect('/admin/products');
    } else {
        \Session::flash('errors', $validator->messages());

        return redirect()->back()->withInput();
    }
}

Я сделал два изменения в вашем коде-

  1. Добавлен метод проверки по $ request вместо $ this.
  2. Добавлена ​​проверка на неудачную проверку и отправлены эти ошибки через сеанс.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...