Sie können Klinge erstrecken, wie so:
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; ?>";
});
Sie können dann mit der folgenden:
@switch($test)
@case(1)
Words
@break
@case(2)
Other Words
@break
@default
Default words
@endswitch
Beachten Sie jedoch die Warnungen in: http://php.net/manual/en/control-structures.alternative-syntax.php
Wenn zwischen dem Schalter(): und dem ersten Fall Leerzeichen vorhanden sind, schlägt der gesamte Codeblock fehl. Das ist eher eine PHP-Einschränkung als eine Blade-Begrenzung. Sie können es möglicherweise umgehen, indem Sie die normale Syntax erzwingen, z.:
Blade::directive('switch', function ($expression) {
return "<?php switch($expression) { ?>";
});
Blade::directive('endswitch', function ($) {
return "<?php } ?>";
});
Aber das fühlt sich ein bisschen falsch an.
https://github.com/laravel/framework/issues/1857 – ceejayoz
@ventaquil Die ausgewählte Antwort ist falsch. Kann die Antwort zu der von mir geposteten geändert werden? – captainblack
@captainblack Tut mir leid, aber diese Lösung ist für Laravel 5.2 + - wir verwenden 5.1 LTS. – ventaquil