我必须从我的网站登出用户。我在视图中有这个:
<a href="{{ URL::route('up_sessions.destroy') }}">Logout</a>
在routes.php中:
Route::resource('up_sessions','SessionsController');
SessionsController的destroy方法做了类似
的事情session()->put('key', null);
,最后返回Redirect::to('Home');
当我点击'Logout'时,它将我发送到localhost:8000/up_sessions/%7Bup_sessions%7D什么也没发生。我期待返回"Home",这就是我需要的,点击注销,转到控制器,调用destroy方法,取消设置会话键,然后返回Home。我不明白为什么链接最后有这个片段%7Bup_sessions%7D…我没有办法解决这个问题,我也不知道如何摆脱它。不管怎样,我只需要点击注销,注销好了。
我做错了什么
要将路径指向愿望控制器方法,请使用
<a href="{{ action('SessionsController@destroy') }}">Logout</a>
<a href="{{URL::to('/up_sessions/destroy')}}">Logout</a>
您可以使用link_to_action helper来完成您想要的操作。例如:
{!! link_to_action('SessionsController@destroy','Log out',[pramameters,...,...]) !!}
//pass parameter if you have it
然后在你的SessionController中,你处理它的工作方式
public function destroy($parameter...){
//destroy session...
return redirect('home');
}