Using Switch Case on Laravel 5 Blade


In this post I will show you about how to add Switch Case to Laravel 5.x blade template engine.

Source: Link

On app/Providers/AppServiceProvider.php do following steps:

use Illuminate\Support\Facades\Blade;

On function function boot() add following line:

// Switch case directive
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;
});

And now you can use following blade notation to make switch case condition.

@switch($k)
    @case(0)
        fsdfsdf
        @breakswitch
    @case(1)
      sdfsdf
        @breakswitch
    @case(2)
        sdf
        @breakswitch
@endswitch
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s