laravel 如果通过父类层操作 将参数 传递到 Blade页面布局中
阿神
阿神 2017-05-16 16:56:01
[PHP讨论组]

layout中用到的变量,如果从控制器传参,需要每个视图都重复操作!
如何解决一次运算后,将结果传递给layout中,供所有视图使用(不想在layout视图中出现业务代码)。

eg:
1. 权限管理,根据不同的用户,设置不同的菜单!
2. 菜单中的动态数字,比如 【当日订单(50)】,那个50需要所有的控制器获取数据后,再传递给视图!

阿神
阿神

闭关修行中......

全部回复(3)
迷茫

有两种方法可以解决:

第一:传统的ViewComposerProvider

class NavViewComposerProvider extends ServiceProvider {

public function boot(){
    view()->composer('partials.nav', function ($view) {

        $view->with('userAtLayout', User::find(Auth::user()->id));
        //根据自己的需求改呗

    });
  }
}

第二,Laravel 5.1新特性@inject:

@inject('var','Class')
// var 变量名 Class绑定的类名

比如你可以这样:

@inject('nav','App\SiteNav')

在SiteNav中查询数据就可以了。

题外话:认真看文档,可以解决你越到的80%的问题。

Happy Hacking

巴扎黑
phpView::share('name', $var)
PHPz

楼上说的方法都不靠谱,获取不了当前url参数来传入你的函数中的

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号