2017-06-19 76 views
3

我有一个项目,用户被分配给一个客户,我想分享这些信息。在Laravel 5.4的视图中共享

在AppServiceProvider我加

use View; 
use Auth; 

,然后修改启动到

if (Auth::check()) 
      { 
       $cid = Auth::user()->client_id; 
       $company = \App\Clients::first($cid); 
       view::share('company',$company); 
      } 

,但如果我的DD($公司),我得到

Undefined variable: company 
+0

它可能是一个错字?视图不是视图(首字母大写) – clod986

回答

8

这是因为Auth的不在AppServiceProvider

所以,你如果条件回报false

如果您与所有的美景数据,那么你这样的代码不检查验证。那么它会工作。

$company = 'Some value'; 
view::share('company',$company); 

dd($company);  // for print output. 

解决方案 - 对于备用选项,你必须做出Helper类。

1

当运行提供程序boot时,Auth警卫尚未启动,因此Auth::check()返回false,并且Auth::user()返回null。

你可以做的View::share在中间件,或者在控制器的构造函数(基控制器在整个应用程序,或者某些特定的控制器共享它,如果你需要它在路线的一些子集)。