gpt4 book ai didi

php - 为什么从 Laravel 中的 AppServiceProvider 访问时用户和 session 不起作用?

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:01 26 4
gpt4 key购买 nike

我正在使用 AppServiceProvider 将数据传递给所有 View ,就像我被告知的那样:

<?php namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\User;
use Session;

class AppServiceProvider extends ServiceProvider {

public function boot()
{
$userID = Session::get('userID');
$user = User::find($userID);
view()->share('user', $user);
}

public function register()
{
$this->app->bind(
'Illuminate\Contracts\Auth\Registrar',
'App\Services\Registrar'
);
}
}

这不会导致错误,但是在我看来 $usernull。当从常规 Controller 直接返回时,获取 $user 的相同代码工作得很好。当手动注入(inject) $user 时, View 也能正常工作。

下一步是在用户模型中创建一个新方法:

public static function getSessionUser(){
return self::find(Session::get('SteamID64'));
}

同样,这在除 AppServiceProvider 之外的任何地方都可以正常工作。

我愿意接受任何建议,甚至是将 $user 传递给我的 View 的不同方法。

我不明白是什么原因造成的,确实需要帮助。感谢您的宝贵时间!

最佳答案

我对 Laravel 不是很有经验,但我怀疑这个服务提供者没有被加载。您是否已将提供商添加到 'providers' array in your config/app.php file

关于php - 为什么从 Laravel 中的 AppServiceProvider 访问时用户和 session 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29336307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com