2017-09-05 2 views
1

는 지금은 멀티 메뉴 페이지 링크 빌딩laravel blade의 한 줄에 else if 조건을 여러 개 표현할 수 있습니까?

<ul> 
    @foreach($main_nav as $mainMenu) 
    @if($mainMenu->page_type == "link-page") 
     $link = $mainMenu->link; 
    @elseif($mainMenu->page_type == "predefine-link") 
     $link = route('home').'/'.$mainMenu->link; 
    @else 
     $link = 'page/'.$mainMenu->slug; 
    @endif 

    <li> 
     <a href="{{ $link }}"> 
      {{ $mainMenu->title }} 
     </a> 
    </li> 
    @endforeach 
</ul> 

를 들어이 코드를 사용하려고하지만 Laravel 블레이드에 단일 선에 대한 Represente 위의 코드 싶어요. 나는 isset ('')에 대한 아이디어를 가지고 있습니다 : '' '단선에 대해서는 하나의 조건을 3 번 반복하므로이 형식으로 한 줄에 여러 조건을 표현할 수 있습니까?

<ul> 
    @foreach($main_nav as $mainMenu)  
     <li> 
      <a href="{{ $mainMenu->page_type == "link-page" ? "$mainMenu->link" : route('home').'/'.$mainMenu->link }}"> 
       {{ $mainMenu->title }} 
      </a> 
     </li> 
    @endforeach 
</ul> 

답변

0

난 당신이 예와 같이, 블레이드에 @php을 사용 할 수 있습니다, 하나의 라인이 불가능 해 생각합니다.

<ul> 
    @foreach($main_nav as $mainMenu) 

    @if($mainMenu->page_type == "link-page") 
     @php $link = $mainMenu->link; @endphp 
    @elseif($mainMenu->page_type == "predefine-link") 
     @php $link = route('home').'/'.$mainMenu->link; @endphp 
    @else 
     @php $link = 'page/'.$mainMenu->slug; @endphp 
    @endif 

    <li> 
     <a href="{{ $link }}"> 
     {{ $mainMenu->title }} 
     </a> 
    </li> 
    @endforeach 
</ul> 

이 코드가 문제를 해결할 수 있기를 바랍니다. 감사

0

당신은 paramenter 로 $mainMenu에 동의하고 당신이 당신의 if/else를 청소하려면 $maninMenu->page_typeif/else 또는 switch 문을 실행하는 기능을 만들 수 있습니다. helpers.php 파일이나 사용자 blade@php 지시어를 만들 수 있습니다.

//using `@php` 

@php 
function assignMainMenuPageType($mainMenu) 
{ 
if($mainMenu->page_type == "link-page") 
{ 
return $mainMenu->link; 
}else if($mainMenu->page_type == "predefine-link") 
{ 
return route('home').'/'.$mainMenu->link; 
} 
return 'page/'.$mainMenu->slug; 
} 
@endphp 

// use the function in your view 
<ul> 
    @foreach($main_nav as $mainMenu) 
    <li> 
     <a href="{{ assignMainMenuPageType($mainMenu) }}"> 
      {{ $mainMenu->title }} 
     </a> 
    </li> 
    @endforeach 
</ul> 
0

당신은 귀하의 경우에는 삼항 연산자

(IF ? THEN : ELSE(IF ? THEN : ELSE(IF ? THEN : ELSE)) 

중첩 사용할 수 있습니다 그것은해야한다 :

$link = ($mainMenu->page_type == "link-page") ? $mainMenu->link : ($mainMenu->page_type == "predefine-link") ? route('home').'/'.$mainMenu->link : 'page/'.$mainMenu->slug; 
관련 문제