gpt4 book ai didi

Laravel Nova - 仅在表单下拉列表中加载与某些属性的关系

转载 作者:行者123 更新时间:2023-12-04 17:06:44 25 4
gpt4 key购买 nike

我在我的 Nova 应用程序中名为“合作伙伴”的资源中添加了一个 BelongsTo 关系字段(关系名称:用户)。所以在“创建合作伙伴”表单中,现在我有一个选择元素来选择特定用户。

我写的关系包括一个条件:

$this->belongsTo('App\User')->where('role', 'partner');

在选择下拉列表中,不仅显示具有“合作伙伴”角色的用户,还列出了应用程序的所有用户。我该如何解决这个问题?
User table : id, name, role
Partner table : id, user_id, name

合作伙伴模式:
class Partner extends Model
{

protected $fillable = [
'name', 'email', 'user_id'
];

public function User()
{
return $this->belongsTo('App\User')->where('role', 'partner');
}

}

合作伙伴的 Nova 资源字段方法:
public function fields(Request $request)
{
return [
Text::make('Name')->sortable(),
ID::make()->sortable(),
BelongsTo::make('User', 'user', 'App\Nova\User')->rules('required'),
HasMany::make('Clients'),
];
}

最佳答案

您需要为 User 添加相关查询下 Partner新星资源。不需要 Partner 中的 where 条件模型。

use Laravel\Nova\Http\Requests\NovaRequest;
...

public static function relatableUsers(NovaRequest $request, $query)
{
return $query->where('role', 'partner');
}

关于Laravel Nova - 仅在表单下拉列表中加载与某些属性的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53331599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com