Jac*_* Ng 10 php arrays laravel laravel-5
这是我的选择选项
<select name="recomemded_food[]" value="" style="width:560px;" multiple class="chosen-select" >
<option value="American Black Bear">American Black Bear</option>
<option value="Asiatic Black Bear">Asiatic Black Bear</option>
<option value="Brown Bear">Brown Bear</option>
<option value="Giant Panda">Giant Panda</option>
</select>
Run Code Online (Sandbox Code Playgroud)
以下是我的代码试图使用foreach循环来获取数组值.但是我收到以下错误:
@foreach (explode(',',old('recomemded_food')) as $recomemded_food)
{{$recomemded_food}}
@endforeach
Run Code Online (Sandbox Code Playgroud)
错误消息:explode()期望参数2为字符串
Car*_*nes 25
玩了一下之后,我想出了这个,它看起来非常出色
<select name="options[]" id="options" class="form-control" multiple>
@foreach($settings->includes->get('optionList') as $option)
<option value="{{ $option->id }}" {{ (collect(old('options'))->contains($option->id)) ? 'selected':'' }}>{{ $option->name }}</option>
@endforeach
</select>
Run Code Online (Sandbox Code Playgroud)
在利用collect函数时我可能100%错误,但它在我的许多测试中都能正常工作.我想感谢MPS,因为这是你的例子,真的让我尝试这个,因为当"recommended_food"中没有数据时你会引发一个错误,因为in_array需要一个数组并且无法正常使用null所以我来了做这样的事情的想法.
@if (old("options")){{ (in_array($option->id, old("options")) ? "selected":"") }}@endif
Run Code Online (Sandbox Code Playgroud)
内联,但看起来很丑的男人这么长的故事,我正在使用以下代替
{{ (collect(old('options'))->contains($option->id)) ? 'selected':'' }}
Run Code Online (Sandbox Code Playgroud)
希望这有助于其他人!!
如果从Controller传递选择值:
$recommended_foods = ["American Black Bear",
"Asiatic Black Bear",
"Brown Bear",
"Giant Panda"];
Run Code Online (Sandbox Code Playgroud)
并在视图中:
<select required="required" class="form-control" name="recommended_food">
@foreach ($recommended_foods as $key => $food)
<option value="{{ $food}}" {{ (old("recommended_food") == $food ? "selected":"") }}>{{ $food }}</option>
@endforeach
</select>
Run Code Online (Sandbox Code Playgroud)
该问题被要求选择多项。
假设您有一个名为 designation 的字段,并且您需要选择多个指定来添加 1 条记录,并且字段名称为forWho
添加期间
您需要添加此{{ (collect(old('forWhom'))->contains($key)) ? 'selected':'' }} 代码和平到您的选项标签
看起来像
<select id="forWhom" name="forWhom[]" multiple class="form-control chosen">
<option value="">--- Select ---</option>
@foreach ($desgInfo as $key => $value)
<option value="{{ $key }}"
{{ (collect(old('forWhom'))->contains($key)) ? 'selected':'' }} />
{{ $value }}
</option>
@endforeach
</select>
Run Code Online (Sandbox Code Playgroud)
编辑期间
你需要添加
{{ (collect(old('forWhom'))->contains($key)) ? 'selected':'' }}
{{ (in_array($key,$info->forWhom)) ? 'selected' : ''}}
Run Code Online (Sandbox Code Playgroud)
看起来像
<select id="forWhom" name="forWhom[]" multiple class="form-control chosen">
<option value="">--- Select ---</option>
@foreach ($desgInfo as $key => $value)
<option value="{{ $key }}"
{{ (collect(old('forWhom'))->contains($key)) ? 'selected':'' }}
{{ (in_array($key,$info->forWhom)) ? 'selected' : ''}}
/>
{{ $value }}
</option>
@endforeach
</select>
Run Code Online (Sandbox Code Playgroud)
在 Laravel 5.4 的多选下拉列表中选择所有选定的 id,并选择收获
谢谢