首页 > 解决方案 > Laravel Nova - BelongsToMany 关系的选择下拉列表中缺少标签

问题描述

具有代理关系的用户模型:

public function agency_nurse_relationship()
{
    return $this->belongsToMany(\App\Agency::class, 'agency_nurse');
}

用户新星资源:

public function fields(Request $request)
{
    return [
        ID::make()->sortable(),

        BelongsToMany::make('Agency', 'agency_nurse_relationship', 'App\Nova\Agency')
    ];
}

机构附加下拉菜单:

在此处输入图像描述

更新:

User nova 资源中有一个相关的查询,我将其注释掉以进行测试:

public static function relatableQuery(NovaRequest $request, $query)
{
    if ($request->resource() == 'App\Nova\Agency') {

        return $query->where('role', 'nurse')->doesntHave('agency_nurse_relationship');
    }

    return parent::relatableQuery($request, $query);
}

标签: laravellaravel-nova

解决方案


检查\App\Nova\AgencyNova 资源$title属性值,该值将用于在显示时表示资源。

public static $title = 'name';. 而不是name使用您要显示的列名属性。


推荐阅读