如何在刀片式服务器模板中使用交换机?当我使用的时候:
@switch($login_error)
@case(1)
`E-mail` input is empty!
@break
@case(2)
`Password` input is empty!
@break
@endswitch
因此,我将此文本视为明文。我更喜欢在几段代码中使用switch,因为它对我来说比使用if时更干净。
但如果这不可能,那就写吧。
发布于 2016-02-24 23:36:46
您可以只将这些代码添加到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
好好享受~
发布于 2017-09-20 22:12:43
这现已内置在Laravel 5.5 https://laravel.com/docs/5.5/blade#switch-statements中
发布于 2016-11-02 22:16:57
在Laravel 5.1中,这在刀片中有效:
<?php
switch( $machine->disposal ) {
case 'DISPO': echo 'Send to Property Disposition'; break;
case 'UNIT': echo 'Send to Unit'; break;
case 'CASCADE': echo 'Cascade the machine'; break;
case 'TBD': echo 'To Be Determined (TBD)'; break;
}
?>
https://stackoverflow.com/questions/29897508
复制相似问题