修改集合中的 laravel 表名称仅用于输出



我有两个模型

class MerchOrder extends Model
{
protected $table = 'merch_orders';
protected $with = 'merchProducts';
public function merchProducts()
{
return $this->belongsToMany(MerchProduct::class, 'merch_products_ordered', 'orderno', 'product')
->withPivot('quantity', 'price');
}
}

class MerchProduct extends Model
{
protected $table = 'merch_products';
public function merchOrders ()
{
return $this->belongsToMany(MerchOrder::class, 'merch_products_ordered', 'product', 'orderno');
}
}

这是返回的内容

{
"id": 1234,
"receipt": "G4DD8C",
"employee": 01,
"location": 2,
"time_insert": "2020-02-21 10:46:47",
"time_update": "2020-02-23 06:11:23",
"status": "delivered",
"merch_products": [
{
"id": 45,
"title": "Example Title",
"desc": "Example Description",
"price": "237.50",
"pivot": {
"orderno": 57,
"product": 45,
"quantity": 1,
"price": "237.50"
}
}
]
},

如何调整相关类中输出的表名?即。这部分,我希望输出为"有序"而不是表名"merch_products">

"merch_products": [
{

我已经尝试了 laravel as(( 方法,但它只是重命名了"pivot"键,我能找到的其他一切都只谈论重命名单个属性,而不是整个属性集合。

蒂亚

如果您希望关系按不同的名称获取并传递要用作外部引用的自定义列名称,则可以这样命名关系。您可以在此处阅读有关 Laravel's 命名约定的更多信息。

您需要将 MerchOrder 模型更改为以下内容:

class MerchOrder extends Model
{
protected $table = 'merch_orders';
protected $with = 'orders';
public function orders()
{
return $this->belongsToMany(MerchProduct::class, 'merch_products_ordered', 'orderno', 'product')
->withPivot('quantity', 'price');
}
}

最新更新