从视图或路由文件重定向,Laravel
Redirection from view or routesfile, Laravel
哪种做法更好?
A- 让我的 "home.blade.php" 视图根据用户是否登录使用 (Auth::check()
)
显示不同的内容
或
B- 让我的路由文件根据用户是否登录将他们重定向到不同的视图。
我猜是 B 但我不确定如何在同一路由下实现两个不同的视图。
现在我有以下内容:
Route::get('', [
'uses' => '\App\Http\Controllers\HomeController@index',
'as' => 'home',
您可以在 blade 模板视图文件中使用类似的内容来显示内容,除非用户已登录。
@unless (Auth::check())
You are not signed in.
@endunless
或者如果用户使用
登录
@if(Auth::check())
You are signed in.
@endif
如果你想为每个用户(来宾,登录)提供自定义视图,那么你可以在控制器中使用
if(Auth::check()) {
return view('user');
}
// otherwise
return view('guest');
两个选项都不错,具体取决于您在此视图中的内容。如果您只有 "You are logged in"/"You're not logged in" 消息,使用 blade 使其可见很酷。
如果你有两个不同的页面,有很多内容,你查看的文件会很大而且很混乱,所以我相信最好的做法是制作两个视图并验证用户是否登录了你的控制器。
此处更好的做法取决于您的实施
哪种做法更好?
A- 让我的 "home.blade.php" 视图根据用户是否登录使用 (Auth::check()
)
或
B- 让我的路由文件根据用户是否登录将他们重定向到不同的视图。
我猜是 B 但我不确定如何在同一路由下实现两个不同的视图。
现在我有以下内容:
Route::get('', [
'uses' => '\App\Http\Controllers\HomeController@index',
'as' => 'home',
您可以在 blade 模板视图文件中使用类似的内容来显示内容,除非用户已登录。
@unless (Auth::check())
You are not signed in.
@endunless
或者如果用户使用
登录 @if(Auth::check())
You are signed in.
@endif
如果你想为每个用户(来宾,登录)提供自定义视图,那么你可以在控制器中使用
if(Auth::check()) {
return view('user');
}
// otherwise
return view('guest');
两个选项都不错,具体取决于您在此视图中的内容。如果您只有 "You are logged in"/"You're not logged in" 消息,使用 blade 使其可见很酷。
如果你有两个不同的页面,有很多内容,你查看的文件会很大而且很混乱,所以我相信最好的做法是制作两个视图并验证用户是否登录了你的控制器。
此处更好的做法取决于您的实施