我正在使用AppServiceProvider
将数据传递给所有视图,就像我被告知的那样:
<?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'
);
}
}
这会导致错误,但我的观看中$user
为null
。获取$user
的相同代码在直接从常规Controller返回时效果很好。当手动注入$ user时,视图也可以正常工作。
下一步是在User模型中创建一个新方法:
public static function getSessionUser(){
return self::find(Session::get('SteamID64'));
}
同样,除AppServiceProvider
之外,其他地方都可以正常工作。
我愿意接受任何建议,甚至采用不同的方法将$user
传递给我的观点。
我不明白是什么原因造成的,真的需要帮助。谢谢你的时间!
答案 0 :(得分:0)
我对Laravel不是很有经验,但我怀疑这个服务提供商没有被加载。您是否已将提供商添加到'providers' array in your config/app.php file?