laravel - 检查 Blade 中 Stack 指令的内容

标签 laravel laravel-blade

我使用了 stack()获取 push()在我的模板中编辑值:

<script>
$(document).ready(function(){
    @stack('ready_script')
});
</script>

但我想检查是否有什么push() ed 已经放了 <script>和其他代码。

有什么办法可以检查吗?

最佳答案

目前 laravel 中没有用于 @stack 检查的指令。 您需要定义一个自定义指令

参见 Laravel docs 中的“扩展 Blade ”

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Blade;

class AppServiceProvider extends ServiceProvider
{
    // ...

    public function boot()
    {
        // ...

        Blade::directive('hasStack', function ($expression){
            return "<?php if (! empty(trim(\$__env->yieldPushContent($expression)))): ?>";
        });
    }
    
    // ...
}

之后,在你的 blade 文件中:

@hasStack('ready_script')
<script>
$(document).ready(function(){
    @stack('ready_script')
});
</script>
@endif

关于laravel - 检查 Blade 中 Stack 指令的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57592193/

相关文章:

php - 如何在 Laravel View 中调用类方法?

laravel - 打开 .blade.php 时 Sublime Text 出错

excel - laravel中过滤后如何导出excel?

php - 给出的错误 : array_flip() expects parameter 1 to be array, 字符串

php - Laravel blade - 如果满足条件则添加一个类

php - Laravel 在同一张表中返回 parent 的 child

javascript - JQuery ajax 在开关切换时执行多次

php - 尝试使用 cmd 在 Laravel 5.6 中播种时出现语法错误,意外的 ','

php - 创建或更新 - Laravel 4.1

php - 请帮我解决这个路线错误