如何使用 laravel 中的旧值填充多重选择器
How to populate a multiple selectpicker with old value in laravel
我有一个 edit.blade.php(Post),其中我有一个多选择器,它应该显示所有类别(类别)并且已经选择了一个。经过一些研究,我发现这个方法可以使它工作,但它说 in_array() expects parameter 2 to be array, null given
<select class="form-control selectpicker" multiple name="category[]" title="Categoría">
@foreach($categories as $category)
<option value="{{ $category->id }}" {{ (in_array($category, old("category")) ? "selected":"") }} >{{ $category->name }}</option>
@endforeach
</select>
我从我的 Post 控制器发送来自特征(即 $categories)的所有现有类别,并且 post 拥有的类别在 $post->类别。
编辑:设法得到了我想要的,但现在我得到了多个值的副本,有什么办法可以避免这种情况?
<select class="form-control selectpicker" multiple name="category[]" title="Categoría">
@foreach ($categories as $category)
@foreach ($post->categories as $postCategory)
@if ($postCategory->id == $category->id)
<option selected value="{{ $category->id }}">{{ $category->name }}</option>
@else
<option value="{{ $category->id }}">{{ $category->name }}</option>
@endif
@endforeach
@endforeach
</select>
你可以像这样使用,对于 post 类别,提取 id,并检查数组,或者从控制器中,你也可以传递 post 类别的数组,
@foreach ($categories as $category)
<option @if(in_array($category->id, $post->categories->pluck('id')->toArray())) selected
@endif value="{{ $category->id }}">{{ $category->name }}</option>
@endforeach
我有一个 edit.blade.php(Post),其中我有一个多选择器,它应该显示所有类别(类别)并且已经选择了一个。经过一些研究,我发现这个方法可以使它工作,但它说 in_array() expects parameter 2 to be array, null given
<select class="form-control selectpicker" multiple name="category[]" title="Categoría">
@foreach($categories as $category)
<option value="{{ $category->id }}" {{ (in_array($category, old("category")) ? "selected":"") }} >{{ $category->name }}</option>
@endforeach
</select>
我从我的 Post 控制器发送来自特征(即 $categories)的所有现有类别,并且 post 拥有的类别在 $post->类别。
编辑:设法得到了我想要的,但现在我得到了多个值的副本,有什么办法可以避免这种情况?
<select class="form-control selectpicker" multiple name="category[]" title="Categoría">
@foreach ($categories as $category)
@foreach ($post->categories as $postCategory)
@if ($postCategory->id == $category->id)
<option selected value="{{ $category->id }}">{{ $category->name }}</option>
@else
<option value="{{ $category->id }}">{{ $category->name }}</option>
@endif
@endforeach
@endforeach
</select>
你可以像这样使用,对于 post 类别,提取 id,并检查数组,或者从控制器中,你也可以传递 post 类别的数组,
@foreach ($categories as $category)
<option @if(in_array($category->id, $post->categories->pluck('id')->toArray())) selected
@endif value="{{ $category->id }}">{{ $category->name }}</option>
@endforeach