php - 从数组中将多个标签复选框设置为“已选择”
问题描述
为简单的事情苦苦挣扎!
我是 Laravel 8 的新手,并且有许多动态创建的复选框,将它们的值保存到数组中。当我想将以前活动的选项标记为“已选择”时,就会出现我的问题。
问题似乎与 in_array 参数以及我在哪里创建数组..
@php
$currentTags = $prop->tags->pluck('id');
@endphp
@foreach($tags as $tag)
<div class="custom-control custom-switch">
<input type="checkbox"
@if(in_array($tag->id, $currentTags)) selected @endif
class="custom-control-input"
onclick="$(this).val(this.checked ? {{ $tag->id }} : 0)"
id="tags[{{ $tag->id }}]"
name="tags[{{ $tag->id }}]">
<label class="custom-control-label" for="tags[{{ $tag->id }}]">{{ $tag->name }}</label>
</div>
@endforeach
Error TypeError in_array(): Argument #2 ($haystack) must be of type array, Illuminate\Support\Collection
解决方案
正如@El_Vanja评论的那样:
错误很明显——它需要一个数组,但你给了它一个 Illuminate\Support\Collection 类型的对象。如果您查看该类的文档,您会看到它有一个名为 all 的方法,该方法将集合项作为数组检索。
也应该selected
改成checked
.
改变这个
@if(in_array($tag->id, $currentTags)) selected @endif
至
@if(in_array($tag->id, $currentTags->toArray())) checked @endif
或者
@if(in_array($tag->id, $currentTags->all())) checked @endif
推荐阅读
- reactjs - 使用访问令牌响应 instagram api 请求
- r - R中的堆积面积图
- javascript - 刷新后如何将存储的数据保存到本地存储?
- swift - 使结构列表符合 SwiftUI 协议
- android - 无法在 Android 11 上使用自定义 URI 方案从 WebViewClient 重定向到应用程序
- html - Safari 15.0 - 位置的奇怪问题:相对
- python - 在 python 中的 NorthPolarStereo 投影中绘制更少的风倒钩
- android - 将字体添加到下拉菜单
- automation - 托斯卡难题 81121 用 RBFW 解决(一次又一次)
- flutter - 如何在颤振中比较两个应用程序版本?