Bạn có thể mở rộng lưỡi dao như vậy:
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; ?>";
});
Sau đó, bạn có thể sử dụng như sau:
@switch($test)
@case(1)
Words
@break
@case(2)
Other Words
@break
@default
Default words
@endswitch
Tuy nhiên, hãy lưu ý các cảnh báo trong: http://php.net/manual/en/control-structures.alternative-syntax.php
Nếu có bất kỳ khoảng trắng nào giữa switch (): và trường hợp đầu tiên thì toàn bộ khối mã sẽ bị lỗi. Đó là một hạn chế của PHP chứ không phải là một hạn chế của phiến. Bạn có thể bỏ qua nó bằng cách sử dụng cú pháp bình thường, ví dụ:
Blade::directive('switch', function ($expression) {
return "<?php switch($expression) { ?>";
});
Blade::directive('endswitch', function ($) {
return "<?php } ?>";
});
Nhưng điều này cảm thấy một chút sai lầm.