抱歉,但我对Laravel很新,所以我可能会说一些愚蠢的事情......
好的,我刚刚使用php artisan make:auth
创建了一个身份验证系统,并使用auth
中间件创建了一个简单的路由:
Route::get("/test", "TestController@test")->middleware('auth');
当访客进入/ test页面时,auth系统会自动将他重定向到/ login页面,这是正常的。
但是,我想向访客显示“您必须登录才能查看此页面”的消息,因此我已将此代码添加到Auth/LoginController.php
:
public function showLoginForm()
{
$intendedURL = \Session::get('url.intended');
if($intendedURL)
return view('auth.login')->with("message", "You must log in to continue");
return view('auth.login');
}
可以吗?这是实现这个的好方法吗?因为它看起来很奇怪..
谢谢!
答案 0 :(得分:2)
如果用户有预定的网址,测试就可以了,有一件事要记住,这会影响所有重定向的用户,而不仅仅是来自/test
的用户
但最好在会话中使用消息刷新来获取此类消息,而不在视图中传递它:
public function showLoginForm()
{
$intendedURL = \Session::get('url.intended');
if($intendedURL) {
Session::flash('message', 'You must log in to continue');
}
return view('auth.login');
}
在视图中,您将使用Session::has
方法:
@if(Session::has('message'))
<p class="alert alert-info">{{ Session::get('message') }}</p>
@endif
添加一些CSS;)