自定义指令传参

如果你想在自定义逻辑内接收参数应该怎么办?请查看示例4-30

Example 4-30. Creating a Blade directive with parameters
// Binding
Blade::directive('newlinesToBr', function ($expression) { 
    return "<?php echo nl2br({$expression}); ?>";
});
// In use
<p>@newlinesToBr($message->body)</p>

闭包内的$expression接收外部传递的内容,然后用php输出了内容.

Laravel 5.3之前的$expression参数作用域

在laravel 5.3之前,$expression参数还包括括号本身。所以,在示例4-30中,$expression(在Laravel 5.3和更高版本中是$message->body)应该是($message->body),而我们必须写<?php echo nl2br$expression?>

如果你发现你在不停的写重复逻辑,你应该考虑使用自定义指令

Last updated