如何在laravel刀片上单行表示多个if else条件?

时间:2017-09-05 01:33:08

标签: laravel blade

现在我正在尝试将此代码用于多菜单页面链接构建

import pyodbc
connection = pyodbc.connect('Driver = {SQL Server};Server=SIWSQL43A\SIMSSPROD43A;'
                            'Database=CSM_reporting;Trusted_Connection=yes;')

但我想在Laravel Blade上代表单行代码。我有一个关于isset('')的想法?'':''对于单行,但是我的条件重复了3次,那么我怎样才能在这种格式的单行上表示多个if else条件。

<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>

3 个答案:

答案 0 :(得分: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>

我希望这段代码可以解决您的问题。感谢

答案 1 :(得分:0)

您可以创建一个函数来接受$mainMenu作为参数  如果您要清除if/else,请在switch上运行$maninMenu->page_typeif/else条款。您可以创建helpers.php文件或用户blade的{​​{1}}指令。

@php

答案 2 :(得分: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;