我将我的视图传递给一个集合。如果我输出这个数组,我得到这样的东西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