Laravel Blade @yield可变范围

Vot*_*ike 7 laravel blade laravel-5

我有两个几乎相同的页面.一个显示用户列表,另一个显示相同的列表,但具有更详细的信息.所以我调用两个扩展相同包装器的视图.但是,Laravel抱怨在verbose.blade.php中没有定义$ user.我将$ users传递给视图,该视图似乎可用于content.blade.php,但是在foreach循环中创建的$ user似乎无法在verbose.blade.php中访问.

verbose.blade.php

@extends('layout.content')

@section('user')
    {{ dd($user) }}
@endsection
Run Code Online (Sandbox Code Playgroud)

nonverbose.blade.php

@extends('layout.content')

@section('user')
    {{ dd($user) }}
@endsection
Run Code Online (Sandbox Code Playgroud)

content.blade.php

@extends('layout.app')

@section('content')
    @foreach($users as $user)
        @yield('user')
    @endforeach
@endsection
Run Code Online (Sandbox Code Playgroud)

我也试过了 @yield('user', ['user' => $user])

我如何在verbose.blade.php中提供$ user?

Ben*_*aar 0

由于 Laravel 解析刀片模板的顺序,您会收到该错误。

有时,我们程序员对“不要重复自己(DRY)”的原则如此根深蒂固,以至于我们走得太远了。这是其中之一 - 您应该简单地将 foreach 循环直接放入 verbose.blade.php 中:

@extends('layout.app')

@section('content')
    @foreach($users as $user)
        @yield('user')
    @endforeach
@endsection
Run Code Online (Sandbox Code Playgroud)