如何将多个参数传递给自定义刀片?

时间:2016-05-04 04:22:52

标签: laravel-5.2

由于指令方法只接受$表达式,是否有一个关于如何传递多个参数而不使用explode的示例?

我试过了:

Blade::directive('reportLink', function($expression, $expression2) {

然后:

@reportLink("a", "b")

但是我得到了错误,缺少参数2 ..

2 个答案:

答案 0 :(得分:1)

自己碰到了这个。只有这样才能使它成为一个数组。

在您的刀片模板中:

@reportLink([$argument1, $argument1])
    --stuff--
@endreportLink

在您的服务提供商中:

Blade::directive('reportLink', function ($expression) {
    return "<?php App\ReportLink::YourMethod{$expression} ?>";
});

在你班上:

class ReportLink
{
    public static function YourMethod($arguments)
    {
        dd($arguments); // this is now an array.
    }
}

也许您已经自己找到了这个,但如果人们正在搜索这个,请将来参考。

答案 1 :(得分:0)

您可以使用这样的逗号拼写参数

@reportLink($argument1, $argument1)
--stuff--
@endreportLink

你必须在指令

处爆炸字符串
Blade::directive('reportLink', function ($expression) {

    $expression = explode(',', $expression);

    return "<?php echo $expression[0].' '.$expression[1] ?>";
});