Laravel在一段关系中退缩了


Laravel withtrashed in a relationship

我有一个Order模型和一个Service模型。

可以删除订单(软删除)。我想列出所有的订单,删除的和活动的,以及它所属的服务。

<<p> 订单模型/strong>:
class Order extends Model
{
    use SoftDeletes;
    protected $dates = ['deleted_at'];
    public function service ()
    {
        return $this->belongsTo('Service');
    }
}
服务模型

:

class Service extends Model
{
    public function order()
    {
        return $this->belongsToMany('Order');
    }
}

What I tried:

$company=Company::with('orders.service'=>function ($query) {
        $query->withTrashed();
    },'services'])->where('id',$company->id)->get();

但这返回没有订单(现在我只有一个删除订单在我的数据库)

任何想法?

谢谢! !

可以使用

 public function order() {
     return $this->belongsToMany('Order')->withTrashed();
 }

首先,一个belongsToMany关系总是与另一个belongsToMany关系在另一边,所以你没有做正确的关系。

如果你想要一个多对多的关系,两个模型都应该有一个belongsToMany关系到另一个模型,你必须有一个数据透视表。

如果你想要一个一对多的关系,一个模型应该有belongsTo关系,另一个模型应该有hasMany关系。