Laravel 5.2 : 如何从其他子视图获取父视图的子视图中的变量?

Laravel 5.2 : How to get a variable in a subView of a parentView from another subView?

下面是我的视图和控制器,我希望 $name 变量可以在包含在主视图中的导航栏视图中访问。有人知道解决方案吗?

userController.php

public function index($var){
    $u_array = $var;
    $name = $u_array->name;
    return view('index',compact(name));
}

master.blade.php

@include('navbar')
<section class="main-container">
    @yield('content')
</section>

index.blade.php

@extends('master')
@section('content')
    <h2>{{$name}}</h2>
@endsection

navbar.blade.php

<h1>{{$name}}</h1>

您应该为此使用视图编辑器。

View Composer

view()->composer('master', function ($view) {
  $u_array = $var;
  $name = $u_array->name;
  $view->with(compact(name));
});

如果对您的具体问题进行更多解释,我或许可以帮助您找到更好的选择。

将变量传递给 master.blade 然后 navbar.blade:

@extends('master', ['name' => $name]) //compact('name')

然后:

@include('navbar', ['name' => $name]) //compact('name')

您可以在索引视图中使用@section 并在导航栏视图中使用@yield 作为

index.blade.php

@extends('master')
@section('content')
    <h2>{{$name}}</h2>
@endsection
@section('nav')
    <h1>{{$name}}</h1>
@endsection

navbar.blade.php

@yield(nav)