与视图作为模型共享变量



我有laravel 5.3项目我试图与所有观点分享。所以我在尝试这个..在AppServiceProviders中这是引导功能

View::share('path', '/final/public/');

好的工作..但是我想做的是与所有视图(如计数模型记录)共享变量我的意思是这样..

$items = Item::get();
View::share('variable',$items);

,但没有任何东西。所以我试图把它放在这堂课上。

class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
private $itemss;
public function __construct()
{
    $this->middleware(function ($request, $next) {
        $this->itemss = Item::get();
        view()->share('itemss', $this->itemss);
    });
}
}

,我gat相同的错误

ErrorException in 4f8648bebb04d05a1427fdfec486dd0221e1b875.php line 235:
Undefined variable: itemss (View: 
E:AppServwwwfinalresourcesviewslayoutsadminmaster.blade.php) (View: 
E:AppServwwwfinalresourcesviewslayoutsadminmaster.blade.php)

您可能需要使用use关键字扩展变量的范围。

public function __construct()
{
    $this->middleware(function ($request, $next) use ($itemss) {
        $this->itemss = Item::get();
        view()->share('itemss', $this->itemss);
    });
}

来自文档:

闭合封装了其范围,这意味着它无法访问 定义或执行的范围。但是,有可能 继承来自父范围的变量(定义闭合的位置) 使用使用关键字

进入关闭

最新更新