Как передать переменные, необходимые для просмотра через маршрут перенаправления в laravel? - PullRequest
0 голосов
/ 10 мая 2018

Я изменил метод auth по умолчанию в controller, который перенаправляет пользователя после пользовательской страницы login на set_password.Проблема в том, что я могу хорошо перенаправить его на нужную страницу, но мне нужно одновременно передать две динамические переменные, которые возвращаются через базу данных запросов, которую я не могу передать с помощью перенаправления.

Мой модифицированный метод controllerследующим образом: -

protected function authenticated(Request $request, $user)
{
    $activated_up = User::where('id_user',Auth::user()->id_user)
                    ->where(function($query) {
                    $query->where('activated_up', '=', '1')
                    ->orWhere('activated_up', '=','0');
                })
                    ->get(['activated_up']);   
    $showuser = UserProfile::where('id_user',Auth::user()->id_user)->first();

    return redirect()->route('set_password',['activated_up' => $activated_up, 'showuser' => $showuser]); 
}

Я знаю, что для передачи переменной в view мне нужно использовать метод compact следующим образом: - return view('set_password', compact('activated_up', 'showuser');, но это нельзя сделать с помощью перенаправления.

Способ перенаправления означает, что я передаю параметры в route в методе controller, но мне нужно передать переменные перенаправленному view вместо параметров.Как этого добиться?

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Пытался, как описано в ответе Кулдип Мишра , но не смог этого достичь, в любом случае я нашел обходной путь для достижения желаемого результата. То, что я сделал, изменило мой authenticated метод на это: -

 protected function authenticated(Request $request, $user)
{   
    return redirect()->route('set_password');   
}

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

public function setPasswordForm(Request $request)
{
    $activated_up = User::where('id_user',Auth::user()->id_user)
                    ->where(function($query) {
                    $query->where('activated_up', '=', '1')
                    ->orWhere('activated_up', '=','0');
                })
                    ->get(['activated_up']);   
    $showuser = UserProfile::where('id_user',Auth::user()->id_user)->first();
    return view('set_password', compact('activated_up', 'showuser'));
}

И небольшое изменение в маршруте web.php file: -

Route::get('/set_password', 'Controller@setPasswordForm')->name('set_password');

Итак, наконец, я смог перенаправить на нужную страницу с нужным представлением, загруженным динамическими переменными.

0 голосов
/ 10 мая 2018
 protected function authenticated(Request $request, $user)
{
$activated_up = User::where('id_user',Auth::user()->id_user)
                ->where(function($query) {
                $query->where('activated_up', '=', '1')
                ->orWhere('activated_up', '=','0');
            })
                ->get(['activated_up']);   
$showuser = UserProfile::where('id_user',Auth::user()->id_user)->first();

return redirect()->route('set_password',['activated_up' => $activated_up, 'showuser' => $showuser]); 
}

вы можете использовать с

return redirect()->route('set_password')->with('data', ['some kind of 
data']);

по вашему мнению

 @if (session::has('data'))
   The data is {{ session::get('data') }}
 @endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...