在 laravel nova v.3 中获取包含连接数据的 BelongsTo 关系字段

Get BelongsTo relation field with joined data in laravel nova v.3

我使用 laravel nova 版本 3。

我有一个 OrderItem 模型,通过 productVariationproduct_vendorvendor 相关。所以我在 OrderItem 模型中将关系定义为 returns 连接关系:

public function vendor()
{
    return $this->belongsTo(ProductVariation::class)
        ->join('product_vendor', 'product_variation.product_vendor_id', '=', 'product_vendor.id')
        ->join('user', 'user.id', '=', 'product_vendor.user_id');
}

OrederItemNovaResource 中,我定义了一个 BelongsTo 字段,如下所示:

BelongsTo::make(__('Vendor'), 'vendor', \App\Nova\VendorNovaResource::class) 

我也检查:

BelongsTo::make(__('Vendor'), 'vendor', \App\Admin\ProductVariationNovaResource::class)

但他们不returns加入数据。如何从模型而不是 Nova 资源字段接收正确的关系数据?

实际上,这种情况将由nova目前不支持的belongs-to-through关系来处理。因为其他人对此有同样的问题,所以有一个 Github package 可以用来使你的 belongsTo 关系与多个表