Laravel:如何创建自定义的foreach Blade指令

时间:2018-09-15 09:58:53

标签: php laravel laravel-blade

我正在尝试创建自定义的foreach Blade指令。我知道我可以使用开箱即用的那个,但我只是想自己定制一个。

我的目的是创建此指令:

  

@foremails {{$ email-> email}} @endforemails

Blade::directive('foremails', function () {
    return "<?php foreach($data->contract->emails as $email): ?>";
});

Blade::directive('endforemails', function () {
    return "<?php endforeach; ?>";
});

我也不想传递像@foremails('$ data')这样的参数,而是只包含 @foremails ,因为我认为这很干净。

我的代码给我一个错误:未定义的变量:数据

如果我尝试传递参数函数($ data),则会给我一个错误:尝试获取非对象的属性“合约”

如果我尝试使用函数($ data-> contract-> emails),则会得到:语法错误,意外的'->'(T_OBJECT_OPERATOR),期望为')'

1 个答案:

答案 0 :(得分:1)

也许这可以帮助您:

But in truth it is used as a compatibility switch

似乎您必须排除变量