您可以在AppServiceProvider類的啓動方法中添加這些代碼。
Blade::extend(function($value, $compiler){
$value = preg_replace('/(\s*)@switch\((.*)\)(?=\s)/', '$1<?php switch($2):', $value);
$value = preg_replace('/(\s*)@endswitch(?=\s)/', '$1endswitch; ?>', $value);
$value = preg_replace('/(\s*)@case\((.*)\)(?=\s)/', '$1case $2: ?>', $value);
$value = preg_replace('/(?<=\s)@default(?=\s)/', 'default: ?>', $value);
$value = preg_replace('/(?<=\s)@breakswitch(?=\s)/', '<?php break;', $value);
return $value;
});
那麼你可以使用如:
@switch($item)
@case(condition_1)
// do something
@breakswitch
@case(condition_2)
// do something else
@breakswitch
@default
// do default behaviour
@breakswitch
@endswitch
享受吧〜
https://github.com/laravel/framework/issues/1857 – ceejayoz
@ventaquil所選答案不正確。答案可以更改爲我發佈的答案嗎? – captainblack
@captainblack對不起,但此解決方案是爲Laravel 5.2+ - 我們正在使用5.1 LTS。 – ventaquil