【发布时间】:2021-10-19 01:49:48
【问题描述】:
class Order extends Model {
protected $appends = ['test'];
public function orderItems()
{
return $this->hasMany('App\OrderItem');
}
public function getTestAttribute()
{
return $this->orderItems->first()->id;
}
}
class OrderItem extends Model {
protected $appends = ['test'];
public function order()
{
return $this->belongsTo('App\Order');
}
public function getTestAttribute()
{
return $this->order->id;
}
}
给定具有上述定义的模型,当我调用Order::find(1)->toArray() 时,我会收到以下错误。
Maximum function nesting level of '256' reached, aborting!
我应该如何避免这个问题?好像有递归调用
select * from orders where order.id in (?)
select * from order_items where order_items.order_id in (?)
谢谢!
【问题讨论】:
-
在
OrderItem中返回$this->order_id而不是$this->order->id -
Un... @Aless55 您的答案是有效的,但仅适用于此示例代码。实际上我想要得到的是 order_item 表中没有的东西,比如 $this->order->total_charge。