首页 > 解决方案 > 如何向 laravel voyager 关系 BelongsToMany 添加条件

问题描述

我需要在 Belongs To Many Relation 中获取变parent_idnullLaravel Voyager

relation.blade.php

<select
    class="form-control @if(isset($options->taggable) && $options->taggable == 'on') select2-taggable @else select2-ajax @endif"
    name="{{ $relationshipField }}[]" multiple
    data-get-items-route="{{route('voyager.' . $dataType->slug.'.relation')}}" data-get-items-field="{{$row->field}}"
    @if(isset($options->taggable) && $options->taggable == 'on')
    data-route="{{ route('voyager.'.\Illuminate\Support\Str::slug($options->table).'.store') }}"
    data-label="{{$options->label}}"
    data-error-message="{{__('voyager::bread.error_tagging')}}"
    @endif
    >

标签: javascriptlaraveleloquentvoyager

解决方案


您将需要自定义路由调用的控制器:{{route('voyager.' . $dataType->slug.'.relation')}}这将是 $breadController.'@relation'. 您可以在上述控制器中relation通过启发您使用原始方法(l.822)来覆盖公共方法,以发回通常由 a 过滤的雄辩模型->where('parent_id', null)(在 l.838 和 l.840 中)。

你可能也有兴趣研究Laravel 提供的查询范围。


推荐阅读