Laravel 5.2:如何在刀片模板中设置变量,不需要php标签


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

我可以在

中定义一个变量
<?php $var = var1 - var2; ?>
然后打印为
{{ $var }}

但是如何使用laravel刀片模板方法设置变量,然后使用它,基本上在5.2中@set替代?

有这个包的laravel4,但它不兼容laravel5由于它的作曲家文件。一个快速的pull请求可以解决这个问题。

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

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

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

@set('my_variable', $existing_variable)

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


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

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

可以使用刀片注释语法

{{--*/ $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 }}