拥有Laravel指令以在视图中存储数据

时间:2017-05-03 22:41:19

标签: php laravel laravel-5.4

有没有一种优雅的方法来创建一个像堆栈数组一样的own Blade directive?我知道我可以使用@push指令,如@push('key', 'value'),但值只是附加,我需要的是一个堆栈数组,我可以在另一个视图中检索变量(在我的情况下是布局) 。示例(home.blade.php):

@ownDirective('key', 'value1')
@ownDirective('key', 'value2')

然后layout.blade.php

{{ dd($key) }} // ['value1', 'value2']

1 个答案:

答案 0 :(得分:1)

我想出了如何实现我的需求:

Blade::directive('addstack', function ($expression) {
    list($name, $value) = explode(',', $expression);
    return "<?php {$name}[] = {$value}; ?>";
});

// Usage:
// @addstack($key, 'value1')
// @addstack($key, 'value2')