簡體   English   中英

laravel的ElseIf語句

[英]ElseIf statement with laravel

我有以下foreach循環,我得到了不錯的結果,但是當涉及到elseif語句時,我試圖查看兩個球員是否在同一支球隊中,以及是否將他們分開列出與&符號。 目前,我仍然得到以下信息。

Player 1 vs. Player 2 vs. Player 3 vs. Player 4

沒關系,但是玩家1和玩家2在同一個團隊中。 因此出於某種原因,他們沒有將他們視為同一個團隊的成員。 有人看到我的問題是什么嗎?

@foreach ($match->players AS $key => $player)
    @foreach ($player->list as $member)
        {{ $member->player_name }}
    @endforeach
    @if($match->players->count() - 1 != $key)
        vs.
    @elseif ($match->players[$key - 1]->team_id == $player->team_id)
        &
    @endif
@endforeach 

編輯:我稍微改變了數據,但仍然可以工作。

http://pastebin.com/AdyzemC4

將$ match變量拼在一起是很棘手的:)

@if($match->players->count() - 1 != $key)

您的$match->players->count()始終等於玩家人數的值( 例如'n' )。 因此,您的' if '僅檢查' n-1 '!=當前鍵( $key )。 [除了最后一個鍵,這是正確的,因此您得到所有​​'vs']。

這應該工作:

@foreach ($match->players AS $key => $player)
    @foreach ($player->list as $member)
        {{ $member->player_name }}
    @endforeach
    @if($player->team_id != $match->players[$key + 1]->team_id)
        vs.
    @elseif ($player->team_id == $match->players[$key + 1]->team_id)
        &
    @endif
@endforeach

在此,我們要檢查當前玩家的團隊是否與下一個玩家的團隊[ $key+1 ]相同。

注意:您需要停止最后一個播放器的循環,因為$key+1會超出數組,並且會出現偏移錯誤。 因此,在以下情況下添加另一個:

@foreach ($match->players AS $key => $player)
    @foreach ($player->list as $member)
        {{ $member->player_name }}
    @endforeach
    @if($key + 1 < $match->players->count())
        @if($player->team_id != $match->players[$key + 1]->team_id)
            vs.
        @elseif ($player->team_id == $match->players[$key + 1]->team_id)
            &
        @endif
    @endif
@endforeach

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM