San*_*pta 4 php laravel laravel-5 laravel-5.4
我试图访问Auth::user()->id;内部构造函数,但它总是返回错误试图获取非对象的属性.我在laravel文档中研究了Session在构造函数中是不可访问的,并且也在SO上搜索.我需要在构造函数中登录用户ID,因为我必须从数据库中获取数据并使其可用于其所有方法.我目前的代码是:
public function __construct(){
$this->middleware('auth');
$induction_status = TrainingStatusRecord::where('user_id',Auth::user()->id)->where('training','=','induction')->get();
View::share('ind_status',$induction_status);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法(简单方法)在构造函数中登录用户ID.
我将不胜感激任何帮助.
谢谢
在视图中共享变量AppServiceProvider是一种很好的方法
转到App\Providers\AppServiceProvider.php
在页面顶部包含外观
use Illuminate\Support\Facades\Auth;
use App\TrainingStatusRecord;
Run Code Online (Sandbox Code Playgroud)
并在boot方法中粘贴下面的代码
view()->composer('*', function($view){
if(Auth::user()){
$induction_status = TrainingStatusRecord::where('user_id',Auth::user()->id)->where('training','=','induction')->get();
View::share('induction_status',$induction_status);
}
});
Run Code Online (Sandbox Code Playgroud)
现在,您将能够$induction_status在您的应用中获取变量.
参考 https://laravel.com/docs/5.4/providers#the-boot-method
希望它会对你有所帮助.
| 归档时间: |
|
| 查看次数: |
2634 次 |
| 最近记录: |