首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果选项id在刀片式服务器视图的阵列列表中,则Laravel将选项设置为选定

如果选项id在刀片式服务器视图的阵列列表中,则Laravel将选项设置为选定
EN

Stack Overflow用户
提问于 2019-09-18 15:43:10
回答 1查看 328关注 0票数 1

我在我的控制器中进行了查询并将其发送到我的刀片:

代码语言:javascript
复制
public function editContractorAssociation(DeveloperContractorAssociation $developer_contractor_association, Request $request)
    {
        $id = $request->id;
        $developer_contractor_association = DeveloperContractorAssociation::whereHas('defect_types', function ($query) use($id) {
            $query->where('developer_contractor_associations.id', $id);
        })->orwhereHas('contractor', function ($query) use($id) {
            $query->where('developer_contractor_associations.id', $id);
        })->first();
        return view('dev-admin.contractors.associations.edit', ['developer_contractor_association' => $developer_contractor_association]);
    }

当我在我的刀片中调用{{ $developer_contractor_association->defect_types }}时,我得到这样的结果:

代码语言:javascript
复制
[
    {
        "id":2,
        "title":"Wiring",
        "details":"Fix wiring",
        "created_by":"22",
        "created_at":"2019-09-04 11:39:48",
        "updated_at":"2019-09-04 11:39:48",
        "deleted_at":null,
        "is_custom":1,
        "developer_id":1,
        "pivot":{"dca_id":87,"defect_type_id":2}},
        {"id":3,"title":"Plumbing",
            "details": "Fix Pipe",
            "created_by":"22",
            "created_at":"2019-09-04 11:40:07",
            "updated_at":"2019-09-04 11:40:07",
            "deleted_at":null,
            "is_custom":1,
            "developer_id":1,
        "pivot":{"dca_id":87,"defect_type_id":3}
    }
]

现在我有了一个select字段,它列出了所有存在的缺陷类型:

代码语言:javascript
复制
<select class="selectpicker {{ $errors->has('defect-type-id') ? 'is-invalid' : '' }}" name="defect-type-id[]" id="defect-type-id" multiple data-style="selectpicker-style" data-width="100%" title="Defect Types">
    @foreach(App\DefectType::select('id','title')->get() as $defect_type)
        <option value="{{$defect_type->id}}">{{$defect_type->title}}</option>
    @endforeach
</select>

当填充select字段的选项时,如何检查id是否在defect_type_id JSON中,并将选项设置为selected。如下所示:

代码语言:javascript
复制
<select class="selectpicker {{ $errors->has('defect-type-id') ? 'is-invalid' : '' }}" name="defect-type-id[]" id="defect-type-id" multiple data-style="selectpicker-style" data-width="100%" title="Defect Types">
    @foreach(App\DefectType::select('id','title')->get() as $defect_type)
        {{if $defect_type->id in $defect_type_list}}
            <option value="{{$defect_type->id}}">{{$defect_type->title}} selected</option>
        {{else}}
        <option value="{{$defect_type->id}}">{{$defect_type->title}}</option>
    @endforeach
</select>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-18 16:21:58

假设您的defect_types关系返回一个Laravel集合,您可以使用几个Collection方法:

代码语言:javascript
复制
@foreach(App\DefectType::select('id','title')->get() as $defect_type)    
    <option value="{{$defect_type->id}}"
        @if($developer_contractor_association->defect_types->pluck('id')->contains($defect_type->id))
            selected
        @endif
    >
        {{$defect_type->title}}
    </option>
@endforeach

pluck('id')返回一个defect_type id集合,然后您可以使用contains($defect_type->id)检查所有defect_type的当前迭代是否在该集合中。

您可以使用containsstrict()而不是contains(),因为这会进行严格的比较。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57987522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档