다음과 같이 블레이드를 확장 할 수 있습니다.
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 의 경고에 유의 하십시오.
switch () :와 첫 번째 경우 사이에 공백이 있으면 전체 코드 블록이 실패합니다. 이는 블레이드 제한이 아닌 PHP 제한입니다. 다음과 같은 일반 구문을 사용하여 우회 할 수 있습니다.
Blade::directive('switch', function ($expression) {
return "<?php switch($expression) { ?>";
});
Blade::directive('endswitch', function ($) {
return "<?php } ?>";
});
그러나 이것은 약간 잘못된 것 같습니다.