从包含在laravel中的刀片获得刀片变量

问题描述 投票:3回答:2

我试图在刀片中设置一个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
php laravel variables laravel-blade
2个回答
2
投票

请试试这个

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}}

0
投票

因为$ color是局部变量。它就像在A函数中声明$ color变量一样,它的范围在函数内。如果你可以访问同一类的B函数中的$ color,则无法访问它。你的上述情况与此相同。

您可以将此代码放在控制器中:

if(isset($company)) {
    $color = $company->color;
} else {
    $color = $app_color;
}
return view('index', compact('color', $color));

现在,如果在索引刀片视图中包含此行@include('header'),则可以在索引和标题视图中访问$ color变量。我希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.