我试图在刀片中设置一个php变量。它的工作但也在同一刀片上,而不是在其他刀片上设置var。
例:
header.blade.php
@if(isset($company))
@php ($color = $company->color)
@else
@php ($color = $app_color)
@endif
The color: {{$color}} //Output: The color: green
如果我将刀片包含在另一个刀片中,则不设置此变量。喜欢:
index.blade.php
@include('header')
The Color: {{$color}}
//Output: The Color: green
//The Color: null
请试试这个
header.blade.php
@if(isset($company))
@php $color = $company->color; @endphp
@else
@php $color = $app_color; @endphp
@endif
index.blade.php
@include('header')
The Color: {{ $color}}
因为$ color是局部变量。它就像在A函数中声明$ color变量一样,它的范围在函数内。如果你可以访问同一类的B函数中的$ color,则无法访问它。你的上述情况与此相同。
您可以将此代码放在控制器中:
if(isset($company)) {
$color = $company->color;
} else {
$color = $app_color;
}
return view('index', compact('color', $color));
现在,如果在索引刀片视图中包含此行@include('header'),则可以在索引和标题视图中访问$ color变量。我希望这会有所帮助。