Неопределенная переменная: пользователи ..... Конфликт переменных при использовании индекса контроллера ресурсов и метода сохранения в laravel - PullRequest
0 голосов
/ 16 июня 2020

Я не могу перенаправить свой контроллер на то же представление index.blade. php после метода store выдает ошибку Undefined Variable: users, пока я перенаправляю через метод индекса, он работает нормально. Как мне исправить это

Это UserController

public function index()
{
    $users = \App\User::all();
    return view('pages.index')->with('users',$users);
}

public function create()
{
    $users = \App\User::all();
    return view('pages.create', compact('users'));
}


public function store(Request $request)
{
    $validator = \Validator::make($request->all(), [
        'first_name' => 'required',
        'last_name' => 'required',
        'email' => 'required',

    if ($validator->fails())
    {
        return response()->json(['errors'=>$validator->errors()->all()]);
    }
    else
    {
        $users = new User();
        $users->first_name = $request->first_name;
        $users->last_name=$request->last_name;
        $users->email=$request->email;

        $users->save();

        return view('pages.index'); 
    }
}

index.blade.view

          <tbody>
            @foreach($users as $user)
            <tr>
                <td scope="row">{{$user->id}}</td>
                <td>{{$user->first_name.' '.$user->last_name}}</td>
                <td>{{$user->email}}</td>
            </tr>
            @endforeach
          </tbody>

1 Ответ

1 голос
/ 16 июня 2020

Вы должны перенаправляться на маршрут индекса для этого ресурса, который возвращает представление индекса, вместо того, чтобы возвращать само представление:

return redirect()->route('pages.index');

Я не уверен, как называется ваш маршрут или каков URL но какой бы маршрут ни указывал на метод index на вашем UserController, вы хотите перенаправить на него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...