我將我的視圖傳遞給一個集合。如果我輸出這個數組,我得到這樣的東西Laravel 5 - 在View中循環收集的奇怪行爲
array:2 [▼
0 => array:8 [▼
"id" => "53"
"name" => "creativeOption"
"label" => "checkboxSelection"
"value" => "Animated GIF"
"campaignCreativesId" => "21"
"deleted_at" => null
"created_at" => "2016-03-01 13:52:36"
"updated_at" => "2016-03-01 13:52:36"
]
1 => array:8 [▼
"id" => "54"
"name" => "creativeOption"
"label" => "Other"
"value" => "12345"
"campaignCreativesId" => "21"
"deleted_at" => null
"created_at" => "2016-03-01 13:52:36"
"updated_at" => "2016-03-01 13:52:36"
]
]
基本上,我有幾個複選框的選擇。如果選中了其他複選框,則會顯示文本區域以獲取更多詳細信息。在我看來,我做了以下
@foreach($campaign->campaignCreatives->campaignCreativesData as $data)
@if($data->label == 'Other')
{{dd($data->value)}}
<div class="col-md-12 noPadding" id="cOtherText">
{!! Form::textarea('otherInput', $data->value, array('placeholder' => 'Please provide some additional information')) !!}
</div>
@else
<div class="col-md-12 noPadding" id="cOtherText">
{!! Form::textarea('otherInput', null, array('placeholder' => 'TEST')) !!}
</div>
@endif
@endforeach
我基本上做的是檢查,看看是否有此集合命名爲其它標籤。如果有,我想用舊輸入顯示文本區域。如果沒有名爲Other的標籤,我只需要顯示一個空白的textarea。
現在與上述,你可以看到我已經在if語句中放置了一個dd。這是我發現奇怪的。使用上面的數組/集合,if應該被使用,因爲有一個名爲Other present的標籤。正如我所料,dd被解僱了。 dd輸出「12345」,這是之前添加到此textarea的數據。所以如果我刪除這個dd,我會期望textarea在其中顯示12345。
但是,我似乎在else語句中顯示textarea。我知道這個textarea被顯示的原因是因爲我將佔位符設置爲TEST,這是我在textarea中看到的。
因此,即使if語句被滿足,爲什麼它會顯示第二個textarea?
該代碼似乎是正確的。你嘗試過使用@if($ data-> label ===「Other」)嗎? – Laerte
是的,由於某種原因結果相同。兩個條件如何滿足?似乎沒有意義 –
實際上,我已經在這裏測試了這段代碼,而且我似乎工作得很好......如果你在'@ if'之前加入'{{dd($ data)}},它會打印什麼? – Laerte