在session.php中,我使用助手函数url()创建动态域名。这样,当我移动到真正的服务器时,我就不必更改域名了。看起来是这样的:
'domain' => url(''),浏览器中的所有操作都很好,但是当我使用来自终端的任何php、artisan或composer命令时,都会出现以下错误:
PHP Fatal error: Uncaught ReflectionException: Class log does not exist in /vendor/laravel/framework/src/Illuminate/Container/Container.php:738像这样尝试似乎没什么用
'domain' => @url(''),有什么事要做吗?我用的是Laravel 5.2
发布于 2016-03-05 17:58:11
这是因为url助手函数使用Illuminate\Routing\UrlGenerator类来生成URL,并且该类需要注入一个Request实例。在您的特殊情况下,这个问题没有针对手工命令的请求上下文。
我的建议是使用环境变量。因此,在您的.env文件中,您可以拥有:
SESSION_DOMAIN=mydomain.com在您的config/session.php文件中,您可以拥有:
'domain' => env('SESSION_DOMAIN'),您可以安全地使用env助手方法,因为它没有特殊的依赖关系。
如果确实希望使用动态方法,则可以通过条件赋值来设置cookie域,条件赋值仅在应用程序未在控制台模式下运行时才使用url设置cookie域。因此,拥有这样的东西就可以了:
'domain' => app()->runningInConsole() ? null : parse_url(url(''), PHP_URL_HOST),https://stackoverflow.com/questions/35817253
复制相似问题