Laravel Blade 模板:在 Blade 中设置变量 1 个改进

问题

如何在 Laravel Blade 模板中设置变量呢?

答案

Laravel 5.5 及以上

@php Blade 模板指令允许你写 PHP 代码:

@php
    $var = 1
@endphp

Laravel 5.2 及以上

可以使用:

@php ($var = 1)

或者使用区块语句:

@php
    $var = 1
@endphp

Laravel 5

AppServiceProvider.phpboot() 方法中书写以下代码,用来扩展 Blade 的指令:

/*
|--------------------------------------------------------------------------
| 扩展 Blade 指令,允许我们直接在 Blade 模板中直接定义变量
| <code>
| @define $variable = "whatever"
| </code>
|--------------------------------------------------------------------------
*/
\Blade::extend(function($value) {
    return preg_replace('/\@define(.+)/', '<?php ${1}; ?>', $value);
});

然后就可以使用以下方法来设置变量了:

@define $i = 1

参考:https://stackoverflow.com/questions/1300...

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 1

这变量怎么修改值啊

3年前 评论
songliqiangcn 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!