【问题标题】:php - Laravel Auth and Session not workingphp - Laravel 身份验证和会话不起作用
【发布时间】:2014-05-09 12:41:15
【问题描述】:

以下代码打印“test: bar”,但不打印“home: bar”。此代码在我的 XAMPP 服务器上本地运行良好,但在我的虚拟主机服务器上不起作用。起初我以为是 PHP 版本的问题,但我认为不再是这样了。我认为它必须是我必须在虚拟主机上启用的一些设置?有谁知道这可能是什么原因?

class HomeController extends BaseController {

    public function home()
    {
        echo "home: " . Session::get('foo');
    }

    public function test()
    {
        Session::put('foo','bar');
        echo "test: " . Session::get('foo');
        return Redirect::route('home');
    }

}

Actual Output:
test: bar
home:

Expected Output:
test: bar
home: bar

【问题讨论】:

  • 能写个routes.php吗?
  • 您在会话配置中列出了哪些设置?您可能正在尝试使用您的网络服务器上不存在的会话(即 memcache 或其他东西)
  • @angoru:那是什么意思?
  • @TheShiftExchange:我将 config/sessions.php 中的所有内容都保留为默认设置。
  • 您应该使用return 而不是echo,但不确定这是否能解决问题。

标签: php session authentication laravel laravel-4


【解决方案1】:

Laravel 期望从路由(和控制器)返回响应。因为您没有返回重定向,所以会话不会持续,并且重定向可能不会发生。只需更新您的方法即可返回正确的响应:

class HomeController extends BaseController {

    public function home()
    {
        return "home: " . Session::get('foo');
    }

    public function test()
    {
        Session::put('foo','bar');

        return Redirect::route('home');
    }

}

当您返回重定向时,没有必要回显,因为无论如何都不会看到响应。

【讨论】:

  • 再次道歉,这只是在这里输入时的拼写错误,我的代码中确实有返回。它很实用。我已经更新了上面的代码块来显示它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-03
  • 2016-10-21
相关资源
最近更新 更多