Php Own Laravel指令在视图中存储数据

Php Own Laravel指令在视图中存储数据,php,laravel,laravel-5.4,Php,Laravel,Laravel 5.4,有没有一种优雅的方法可以创建一个类似于堆栈数组的数组?我知道我可以使用@push指令,比如@push('key','value'),但是值只是得到append,我需要的是一个堆栈数组,我可以在另一个视图(在我的例子中是布局)中检索它作为变量。示例(home.blade.php): 然后layout.blade.php: @ownDirective('key', 'value1') @ownDirective('key', 'value2') {{ dd($key) }} // ['value1

有没有一种优雅的方法可以创建一个类似于堆栈数组的数组?我知道我可以使用
@push
指令,比如
@push('key','value')
,但是值只是得到append,我需要的是一个堆栈数组,我可以在另一个视图(在我的例子中是布局)中检索它作为变量。示例(
home.blade.php
):

然后
layout.blade.php

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

我想出了如何实现我所需要的:

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

// Usage:
// @addstack($key, 'value1')
// @addstack($key, 'value2')
Blade::指令('addstack',函数($expression){
列表($name,$value)=分解(',',$expression);
返回“”;
});
//用法:
//@addstack($key,“value1”)
//@addstack($key,“value2”)