【发布时间】:2020-11-30 08:41:07
【问题描述】:
这是一个非常奇怪的错误。在我的刀片视图中:
<?php //dd($site); ?>
@if($site==='site1')
在第二行 @if($site==='site1') 我收到 Undefined variable: site 错误。但是,如果我取消注释转储并死掉,我会得到 $site 变量集。从字面上看,它在下一行告诉我它在刀片中没有设置 $site 变量。我的 if 语句的语法是否错误?
对我来说看起来是正确的,文档给出了:
@if (count($records) === 1)
I have one record!
@elseif (count($records) > 1)
I have multiple records!
@else
I don't have any records!
@endif
在@if 和第一个括号( 之间添加一个空格没有区别。
我尝试清除视图缓存,但这也没有什么不同。其他所有更改都会被注册,例如,如果我删除了变量名前面的$,我会得到一个未定义的常量错误。我在本地开发。
我完全不知所措,因为即使变量在刀片中的深度为三个级别,我也正确地传递了它,并且我通过转储确认它并死亡。条件只是不会拿起它。
我像这样将它传递到视图中:
@component('pages.common.component.mycomponent',['site'=>$site])
@endcomponent
像这样再上一级:
@component('pages.common.parent.mycomponent',['site'=>'site1'])
@endcomponent
任何想法我都会非常感激!
编辑:
dd() 调用输出:
“站点 1”
作为字符串。
【问题讨论】:
-
嗨@JeanneDark 谢谢,但不确定你的意思。如果我删除
?>并将其移至第二行下方,它将无效,因为第二行是刀片语法而不是 php 语法。如果我将整个第一行移到第二行下方,我只会在它到达转储并死掉之前得到错误。也许我误解了你。 -
我们可以看到结果
dd($site);吗? -
这是一个错误,已在 7.1.3 上修复 github.com/laravel/framework/issues/31919
-
@xNoJustice 已更新。
-
@sta 看起来不同,涉及类。这里我只是通过多个刀片组件传递一个变量。
标签: php laravel laravel-blade