Ви можете розширити лезо так:
Blade::directive('switch', function ($expression) {
return "<?php switch($expression): ?>";
});
Blade::directive('case', function ($expression) {
return "<?php case $expression: ?>";
});
Blade::directive('break', function () {
return "<?php break; ?>";
});
Blade::directive('default', function () {
return "<?php default: ?>";
});
Blade::directive('endswitch', function () {
return "<?php endswitch; ?>";
});
Потім можна використовувати наступне:
@switch($test)
@case(1)
Words
@break
@case(2)
Other Words
@break
@default
Default words
@endswitch
Однак зверніть увагу на попередження за адресою: http://php.net/manual/en/control-structures.alternative-syntax.php
Якщо між перемикачем (): і першим випадком є пробіли, тоді весь блок коду вийде з ладу. Це обмеження PHP, а не обмеження леза. Можливо, ви зможете його обійти, примушуючи нормальний синтаксис, наприклад:
Blade::directive('switch', function ($expression) {
return "<?php switch($expression) { ?>";
});
Blade::directive('endswitch', function ($) {
return "<?php } ?>";
});
Але це відчувається трохи неправильно.