无法访问@include 之外的变量
Posted
技术标签:
【中文标题】无法访问@include 之外的变量【英文标题】:Cant access variable outside the @include 【发布时间】:2021-01-15 23:06:25 【问题描述】:大家好,我遇到了问题
我之前使用过这种布局架构并面临这个问题
在 master.blade.php 中
code.....
@php $foo = "bar"; @endphp
@yield('main')
code ends....
在contact.blade.php中
@extends('master')
code...
@section('main')
@php echo $foo; @endphp
@endsection
code ends...
错误:contact.blade.php 中未定义的变量 foo
.................................................. ......................
然后我切换到新架构,我又面临同样的问题。
在 master.blade.php 中
code.....
@php $foo = "bar"; @endphp
code ends....
在contact.blade.php中
code...
@includes('master')
@php echo $foo; @endphp
code ends...
错误:contact.blade.php 中未定义的变量 foo
所以建议我如何访问该变量。
【问题讨论】:
您应该看看storage/framework/views
中生成的php 文件,并尝试了解它在幕后实际做了什么。这会更有意义
嗨@CornelRaiu 感谢您的回复,但如果我做错了什么?
这能回答你的问题吗? Laravel Blade passing variable with string through @include causes error
laravel.com/docs/7.x/blade#including-subviews
不,这个链接显示了如何将数据传递到@include
【参考方案1】:
添加
@php global $foo; @endphp
在你所有的刀片中。
解决我的问题,因为我在子刀片中使用变量来控制在主刀片中包含哪些 javascript(避免重复)。
【讨论】:
以上是关于无法访问@include 之外的变量的主要内容,如果未能解决你的问题,请参考以下文章