Puedes extender la hoja así:
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; ?>";
});
Luego puede usar lo siguiente:
@switch($test)
@case(1)
Words
@break
@case(2)
Other Words
@break
@default
Default words
@endswitch
Sin embargo, tenga en cuenta las advertencias en: http://php.net/manual/en/control-structures.alternative-syntax.php
Si hay algún espacio en blanco entre switch (): y el primer caso, todo el bloque de código fallará. Esa es una limitación de PHP en lugar de una limitación de la hoja. Es posible que pueda omitirlo forzando la sintaxis normal, por ejemplo:
Blade::directive('switch', function ($expression) {
return "<?php switch($expression) { ?>";
});
Blade::directive('endswitch', function ($) {
return "<?php } ?>";
});
Pero esto se siente un poco mal.