Laravel 5.2 : 如何在没有 php 标签的情况下在 blade 模板中设置变量?

Laravel 5.2 : how to set a variable in blade template, without php tags?

我可以在下面使用 blade

定义一个变量
<?php $var = var1 - var2; ?>

然后将其打印为

{{ $var }}

但是如何使用laravelblade模板方法设置一个变量然后使用它,基本上@set alternative in 5.2?

您可以使用blade注释语法

{{--*/ $var = $var1 - $var2; /*--}}
{{ $var }}

上面的代码将被翻译成下面的代码片段

<?php /**/ $var = $var1 - $var2; /**/ ?>

阅读更多:http://laravel-recipes.com/recipes/256/assigning-a-variable-in-a-blade-template

试试这个,

@if($var=$var1-$var2)@endif

并打印,

{{ $var }}

有这个 package for laravel 4 但它与 laravel5 不兼容,因为它是作曲家文件。快速拉取请求可以解决这个问题。

包的主要部分只有三行,如果您不想为其引入包,可以将其添加到 AppServiceProvider 的引导方法中:

\Blade::extend(function($value, $compiler) {
    $value = preg_replace("/@set\('(.*?)'\,(.*)\)/", '<?php $ = ; ?>', $value); 
    return $value;
});

以下是自述文件中的一些示例。

@set('my_variable', $existing_variable)

然后您可以在模板中使用变量 $my_variable


例如,您可以选择从模板中获取一堆模型

@set('my_model_list', MyModel::where('something', '=', 1)->paginate(10))