首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel Blade @yield变量作用域

Laravel Blade @yield变量作用域
EN

Stack Overflow用户
提问于 2015-07-28 23:56:32
回答 2查看 4.1K关注 0票数 7

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

verbose.blade.php

代码语言:javascript
复制
@extends('layout.content')

@section('user')
    {{ dd($user) }}
@endsection

nonverbose.blade.php

代码语言:javascript
复制
@extends('layout.content')

@section('user')
    {{ dd($user) }}
@endsection

content.blade.php

代码语言:javascript
复制
@extends('layout.app')

@section('content')
    @foreach($users as $user)
        @yield('user')
    @endforeach
@endsection

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

如何让$user在verbose.blade.php中可用?

EN

回答 2

Stack Overflow用户

发布于 2015-07-29 03:44:27

你有没有尝试过使用@include?

代码语言:javascript
复制
@include('user', ['user' => $user])
票数 2
EN

Stack Overflow用户

发布于 2015-07-29 01:56:03

由于Laravel解析刀片式服务器模板的顺序,您会得到该错误。

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

代码语言:javascript
复制
@extends('layout.app')

@section('content')
    @foreach($users as $user)
        @yield('user')
    @endforeach
@endsection
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31681465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档