重定向无法在资源控制器中用于注销路由在Laravel中工作

时间:2015-01-05 15:39:34

标签: php session laravel laravel-4 laravel-routing

这些是我的路线:

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)时,它似乎正在让我退出,但我没有被重新定向回主页。我只是看到一个空白的白页。

如果我在dd('here');行之后添加Redirect::home();之类的内容,我可以看到这个词,这意味着重定向被破坏/无效。

知道为什么会这样,以及如何解决它?

我打开了错误报告(E_ALL&amp; display_errors),laravel.log文件为空。

1 个答案:

答案 0 :(得分:1)

使用此:return Redirect::home();