è possibile estendere lama in questo modo:
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; ?>";
});
è possibile utilizzare il seguente:
@switch($test)
@case(1)
Words
@break
@case(2)
Other Words
@break
@default
Default words
@endswitch
Tuttavia si noti le avvertenze in: http://php.net/manual/en/control-structures.alternative-syntax.php
Se c'è uno spazio tra lo switch(): e il primo caso, l'intero blocco di codice fallirà. Questa è una limitazione di PHP piuttosto che una limitazione di blade. Potresti essere in grado di bypassarlo forzando la sintassi normale, ad es.:
Blade::directive('switch', function ($expression) {
return "<?php switch($expression) { ?>";
});
Blade::directive('endswitch', function ($) {
return "<?php } ?>";
});
Ma questo sembra un po 'sbagliato.
https://github.com/laravel/framework/issues/1857 – ceejayoz
@ventaquil La risposta selezionata non è corretta. La risposta può essere cambiata con quella che ho postato? – captainblack
@captainblack scusa ma questa soluzione è per Laravel 5.2+ - stiamo usando 5.1 LTS. – ventaquil