Php 拉威尔刀片模板@extends

Php 拉威尔刀片模板@extends,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,在我的视图中,我正在扩展一个默认刀片模板,它充当我的主模板。我有一个ViewComposer设置,它为这个模板提供许多变量 我遇到了这样一种情况:我需要访问index.blade.php中的其中一个变量,这是启动@extends函数的页面 通过ViewComposer传递的变量是否达到初始视图的范围?或者我需要创建另一个ViewComposer来传递相同的变量 视图生成器 这最终给了我一个未定义的变量错误 Undefined variable: activeProject (View: /hom

在我的视图中,我正在扩展一个
默认
刀片模板,它充当我的主模板。我有一个ViewComposer设置,它为这个模板提供许多变量

我遇到了这样一种情况:我需要访问
index.blade.php
中的其中一个变量,这是启动
@extends
函数的页面

通过ViewComposer传递的变量是否达到初始视图的范围?或者我需要创建另一个ViewComposer来传递相同的变量

视图生成器 这最终给了我一个未定义的变量错误

Undefined variable: activeProject (View: /home/laravel/public_html/base/resources/views/admin/index.blade.php)

是的,主版面中可用的所有变量都将传递给其任何子版面。

因为您在内容版面中使用@extends,所以您可以使用此

@extends('admin/layouts/default',['activeProject'=>$activeProject])


如果这不起作用,您可能需要将其通过控制器

,如我的问题所述。我没有使用
@include
我使用的是
@extends
在这两种情况下都会传递所有变量。在我的应用程序中似乎不是这样。这是在我的
索引.blade.php
的顶部:
@extends('admin/layouts/default')
请发布适当的代码。也许我们可以帮你。
<?php

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 ( 'admin/layouts/default', 'App\Http\ViewComposers\MasterComposer' );
    }

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register() {
        //
    }
}
@extends('admin/layouts/default')
{{ $activeProject }}
Undefined variable: activeProject (View: /home/laravel/public_html/base/resources/views/admin/index.blade.php)