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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从包含在laravel中的刀片获得刀片变量相关的知识,希望对你有一定的参考价值。

我试图在刀片中设置一个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变量。我希望这会有所帮助。

以上是关于从包含在laravel中的刀片获得刀片变量的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Laravel5 中的刀片模板传递扩展主模板中的变量?

laravel刀片视图中的变量未定义错误

如何防止访问laravel刀片中的数据库和资源?

Laravel 刀片模板,URL::to 中的 foreach 变量?

如何使用 js 在刀片 laravel 中的 foreach 上更新变量

laravel 刀片模板变量