[英]How to pass variables needed in view through redirect route in laravel?
我修改了controller
默認auth
方法,該方法將在自定義login
set_password
用戶重定向到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');
但是無法通過重定向完成。
重定向的方式意味着我將參數傳遞給controller
方法中的route
,但是我需要將變量而不是參數傳遞給重定向的view
。 如何實現呢?
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
按照Kuldeep Mishra的答案進行了嘗試,但未能實現,無論如何,我找到了一種解決方法來實現所需的輸出。 我所做的是將經過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
文件中的一個小變化:-
Route::get('/set_password', 'Controller@setPasswordForm')->name('set_password');
因此,最終我能夠使用加載有動態變量的所需視圖重定向到所需頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.