重定向在 Laravel 中从足智多谋的注销路由控制器不起作用
Redirection not working in Laravel from resourceful controller for logout route
这些是我的路线:
Route::get('login', array('as' => 'login', 'uses' => 'SessionController@create'));
Route::get('logout', array('as' => 'logout', 'uses' => 'SessionController@destroy'));
Route::resource('sessions', 'SessionController', array('only' => array('create', 'store', 'destroy')));
Route::get('/', array('as' => 'home', function()
{
return View::make('home');
}));
这是我的会话控制器:
<?php
use Latheesan\Repo\Session\SessionInterface;
use Latheesan\Service\Form\Login\LoginForm;
class SessionController extends \BaseController {
protected $session;
protected $loginForm;
public function __construct(SessionInterface $session, LoginForm $loginForm)
{
$this->session = $session;
$this->loginForm = $loginForm;
}
/**
* Show the form for creating a new resource.
* GET /sessions/create
*
* @return Response
*/
public function create()
{
return View::make('sessions.create');
}
/**
* Store a newly created resource in storage.
* POST /sessions
*
* @return Response
*/
public function store()
{
// snipped
}
/**
* Remove the specified resource from storage.
* DELETE /sessions
*
* @return Response
*/
public function destroy()
{
// Logout user
$this->session->destroy();
// Fire user logout event
Event::fire('user.logout');
// Success
Redirect::home();
}
}
这是SentrySession
-http://pastebin.com/d3ijZHQv
的内容
现在,当我转到 logout
路线(例如 http://my-site.com/logout)时,它似乎将我注销,但我没有被重定向回主页。我只看到一个空白的白页。
如果我在 Redirect::home();
行之后添加类似 dd('here');
的内容,我可以看到这个词,这意味着重定向正在 broken/not 工作。
知道为什么会这样以及如何解决它吗?
我打开了错误报告(E_ALL & display_errors)并且 laravel.log
文件是空的。
使用这个:return Redirect::home();
这些是我的路线:
Route::get('login', array('as' => 'login', 'uses' => 'SessionController@create'));
Route::get('logout', array('as' => 'logout', 'uses' => 'SessionController@destroy'));
Route::resource('sessions', 'SessionController', array('only' => array('create', 'store', 'destroy')));
Route::get('/', array('as' => 'home', function()
{
return View::make('home');
}));
这是我的会话控制器:
<?php
use Latheesan\Repo\Session\SessionInterface;
use Latheesan\Service\Form\Login\LoginForm;
class SessionController extends \BaseController {
protected $session;
protected $loginForm;
public function __construct(SessionInterface $session, LoginForm $loginForm)
{
$this->session = $session;
$this->loginForm = $loginForm;
}
/**
* Show the form for creating a new resource.
* GET /sessions/create
*
* @return Response
*/
public function create()
{
return View::make('sessions.create');
}
/**
* Store a newly created resource in storage.
* POST /sessions
*
* @return Response
*/
public function store()
{
// snipped
}
/**
* Remove the specified resource from storage.
* DELETE /sessions
*
* @return Response
*/
public function destroy()
{
// Logout user
$this->session->destroy();
// Fire user logout event
Event::fire('user.logout');
// Success
Redirect::home();
}
}
这是SentrySession
-http://pastebin.com/d3ijZHQv
现在,当我转到 logout
路线(例如 http://my-site.com/logout)时,它似乎将我注销,但我没有被重定向回主页。我只看到一个空白的白页。
如果我在 Redirect::home();
行之后添加类似 dd('here');
的内容,我可以看到这个词,这意味着重定向正在 broken/not 工作。
知道为什么会这样以及如何解决它吗?
我打开了错误报告(E_ALL & display_errors)并且 laravel.log
文件是空的。
使用这个:return Redirect::home();