首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Laravel 5刀片式服务器中切换

在Laravel 5刀片式服务器中切换
EN

Stack Overflow用户
提问于 2015-04-27 21:42:58
回答 7查看 135.3K关注 0票数 88

如何在刀片式服务器模板中使用交换机?当我使用的时候:

代码语言:javascript
复制
@switch($login_error)
    @case(1)
        `E-mail` input is empty!
        @break
    @case(2)
        `Password` input is empty!
        @break
@endswitch

因此,我将此文本视为明文。我更喜欢在几段代码中使用switch,因为它对我来说比使用if时更干净。

但如果这不可能,那就写吧。

EN

回答 7

Stack Overflow用户

发布于 2016-02-24 23:36:46

您可以只将这些代码添加到AppServiceProvider类引导方法中。

代码语言:javascript
复制
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;
    });

然后,您可以将其用作:

代码语言:javascript
复制
@switch( $item )
    @case( condition_1 )
        // do something
    @breakswitch
    @case( condition_2 )
        // do something else
    @breakswitch
    @default
        // do default behaviour
    @breakswitch
@endswitch

好好享受~

票数 29
EN

Stack Overflow用户

发布于 2017-09-20 22:12:43

票数 7
EN

Stack Overflow用户

发布于 2016-11-02 22:16:57

在Laravel 5.1中,这在刀片中有效:

代码语言:javascript
复制
<?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;
    }
?>
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29897508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档