laravel,如何获得3个选项的值,如果是,那么如果是,那么否则如果r则拒绝

laravel,如何获得3个选项的值,如果是,那么如果是,那么否则如果r则拒绝

问题描述:

in simple way I have this code which reads the result of two options but what if I want them to be 3

I have 3 chars: y, n and r

y = yes
n = not yet
r = rejected

How can I print the last alternative?

{{ ($item->confirmed =='y')?"Yes":"Not Yet" }}

Use a switch in the blade syntax instead, this is available from Laravel 5.5

@switch($item->confirmed)
    @case('y')
        Yes
        @break

    @case('n')
        Not yet
        @break

    @default
        Rejected
@endswitch

If you are running a version without the switch directive, you can use a normal if.

@if ($item->confirmed == 'y')
    Yes
@elseif ($item->confirmed == 'n')
    Not yet
@else
    Rejected
@endif

You can also chain the ternary operators, but its not as pretty. I would recommend going for either of the two above. This can easily be more difficult to read, particularly if you add more conditions - its better to use a switch.

{{ ($item->confirmed == 'y') ? "Yes" : ($item->confirmed == 'n' ? "Not Yet" : 'Rejected') }}