小编sco*_*s93的帖子

Laravel 5.2'Master Layout'变量传递

所以这就是我想要实现的目标.我有一个默认的刀片模板default.blade.php,它由我的所有子视图扩展.

在我的内部default.blade.php有一个foreach循环,它向用户表达一些"全局"选项,其示例如下.

@foreach ($projects as $p)
    <li><a href='$p->project_uid'>{{ $p->project_name }}</a></li>
@endforeach
Run Code Online (Sandbox Code Playgroud)

所以要实现这一点,我必须通过我的控制器中$projectsview('viewname', $data)或通过传递变量View::share('projects', $projects);__construct()

我是否有更好的方式在全球意义上做到这一点,以便不需要进行上述调用?

我所知道的一个选项是在我的视图中调用Model函数,但这违背了MVC的概念,因此并不理想.

任何有关该主题的指导将不胜感激,谢谢.

编辑1

所以我尝试了ViewComposer解决方案,但遇到了一些问题.以下是我的作曲家和服务提供商注册.

配置/ app.php

App\Providers\ComposerServiceProvider::class,
Run Code Online (Sandbox Code Playgroud)

ComposerServiceProvider

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class ComposerServiceProvider extends ServiceProvider {
    /**
     * Register bindings in the container.
     *
     * @return void
     */
    public function boot() {
        // Using class based composers...
        view ()->composer ( 'default', 'App\Http\ViewComposers\MasterComposer' );
    }

    /**
     * Register the service provider.
     *
     * @return void …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 laravel-5.2 laravel-blade

2
推荐指数
1
解决办法
821
查看次数

标签 统计

laravel ×1

laravel-5 ×1

laravel-5.2 ×1

laravel-blade ×1

php ×1