Php 如果选项id位于刀片视图中的阵列列表中,则Laravel将选项设置为选中

Php 如果选项id位于刀片视图中的阵列列表中,则Laravel将选项设置为选中,php,html,laravel,laravel-5,Php,Html,Laravel,Laravel 5,我在控制器中进行了查询并将其发送到刀片: public function editContractorAssociation(DeveloperContractorAssociation $developer_contractor_association, Request $request) { $id = $request->id; $developer_contractor_association = DeveloperContractorAss

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

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\u contractor\u association->defect\u types}}
时,我得到如下结果:

[
    {
        "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 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>

假设您的
defect\u-types
关系返回一个Laravel,您可以使用两种收集方法:

@foreach(App\DefectType::select('id','title')->get()作为$defect\u type)
缺陷类型->采摘('id')->包含($defect类型->id))
挑选出来的
@恩迪夫
>
{{$defect_type->title}
@endforeach
返回
defect\u type
id
的集合,然后可以检查所有
defect\u type
的当前迭代是否在该集合中


您可以使用而不是
contains()
,因为这是一个严格的比较。

我认为您将得到
{{$developer\u contractor\u association->defect\u types}}
{$developer\u contractor\u association->contractor}}
<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>