2017-12-11 17 views
1

条件に基づいてlaravelブレードファイル内の変数に値を割り当てたいとします。 laravel 5.3ブレードファイル内ブレードファイル内の変数に値を割り当てます。

<?php $status=''; ?> 
     @if($user_role=='2'){ 
     <?php $status='1'; ?> 
     } 
     @elseif($user_role=='3'){ 
     <?php $status='2'; ?> 
     } 
     @elseif($user_role=='4'){ 
     <?php $status='3'; ?> 
     } 

が、{{ステータス}}変数に値を割り当てることnothing.Howを返し

+0

[Laravel's Blade:テンプレートに変数を設定するにはどうすればいいですか?](https://stackoverflow.com/questions/13002626/laravels-blade-how-can-i-set-variables-in-a-テンプレート) – Insax

+0

コントローラでこのロジックを実行する方が良いでしょう。刃の中で(眺め) –

+0

@ThomasMoors OPは条件によってテキストを表示したいかもしれません! –

答えて

2
@if($user_role=='2') 
    @php $status='1'; @endphp 
@endif 

@if($user_role=='3') 
    @php $status='2'; @endphp 
@endif 

@if($user_role=='4') 
    @php $status='3'; @endphp 
@endif 

もしエコー

を加えることにより値を確認することができ
@if($user_role=='4') 
    @php echo $status='3'; @endphp 
@endif 
2

switch文はより良いでしょう

@switch($user_role) 
    @case(1) 
     @php $status = 1;@endphp 
     or <h1>Status is 1</h1> 
     @break 

    @case(2) 
     Second case... 
     @break 

    @default 
     Default case... 
     @php $status = 5;@endphp 
@endswitch 
しかし、あなたのロジックのすべてではないが、コントローラで実行する必要があるかどうかをlaravelのバージョンで利用可能@switchを持っていない場合

https://laravel.com/docs/5.5/blade#switch-statements

あなたは常に

@php 
switch($user_role) { 
    case 1: 
     $status = 1; 
     break; 
    case 2: 
     $status = 2; 
     break; 
default: 
    $status = 5; 
} 
@endphp 
を行うことができ、ほとんどの
関連する問題