gpt4 book ai didi

laravel-nova - laravel nova BelongsToMany - 枢轴中的 BelongsTo

转载 作者:行者123 更新时间:2023-12-04 11:48:00 25 4
gpt4 key购买 nike

在 Laravel Nova 中,我有 BelongsToMany 关系(公司 - 枢纽 - 请求)。

在数据透视表中,我有一些额外的列,我可以使用数据透视字段( https://nova.laravel.com/docs/1.0/resources/relationships.html#belongstomany )访问这些列,效果很好。

但是现在我有一个特殊情况,我有一个从数据透视表到第三个表(状态)的附加 BelongsTo 关系。我试图在枢轴字段中定义一个 BelongsTo 字段,但这不起作用。

BelongsToMany::make('Companies', 'companies', Company::class)->fields(new CompanyRequestFields()),

枢轴字段:
class CompanyRequestFields
{
/**
* Get the pivot fields for the relationship.
*
* @return array
*/
public function __invoke()
{
return [
Number::make('preis'),
Text::make('bezahlt'),
BelongsTo::make('State', 'state', States::class),
];
}
}

我得到的错误:
Call to undefined method Illuminate\Database\Eloquent\Relations\Pivot::state()

关系 state() 实际上存在于枢轴模型上,并且还有一个 Nova 资源状态类。

所以看起来 PivotFields 不支持这个?或者有谁知道是否有可能做到这一点?

最佳答案

我无法使其与数据透视表中的关系一起使用,但是您可以在没有如下关系定义的情况下实现它。

class CompanyRequestFields
{
public function __invoke()
{
$states= \App\State::all()->pluck('name', 'id');

return [
...
Select::make('State')->options($states),
];
}
}

\App\Request模型
public function companies()
{
return $this->belongsToMany('App\Company')->withPivot('state');
}

希望这个方法能帮到你。

关于laravel-nova - laravel nova BelongsToMany - 枢轴中的 BelongsTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53723688/

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