Php 拉威尔在一段感情中被抛弃了

Php 拉威尔在一段感情中被抛弃了,php,laravel,Php,Laravel,我有一个订单模型和一个服务模型 可以删除订单(软删除)。 我想列出所有订单,已删除和活动,以及它所属的服务 订单型号: class Order extends Model { use SoftDeletes; protected $dates = ['deleted_at']; public function service () { return $this->belongsTo('Service'); } } class S

我有一个订单模型和一个服务模型

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

订单型号

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');
    }
}
服务模式

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');
    }
}
我尝试的是:

$company=Company::with('orders.service'=>function ($query) {
        $query->withTrashed();
    },'services'])->where('id',$company->id)->get();
但这不会返回订单(目前我的数据库中只有1个已删除订单)

有什么想法吗

谢谢

您可以使用

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

首先,一个
belongstomy
关系总是伴随着另一个
belongstomy
关系在另一边,所以你没有正确处理这些关系

如果需要多对多关系,则两个模型都应该与另一个模型具有
belongToMany
关系,并且必须具有透视表


如果您想要一对多关系,一个模型应该具有
belongsTo
关系,而另一个
具有many
关系。

是,但这将始终返回所有已删除的订单。如果我不需要页面上已删除的订单,该怎么办?另一个我不引以为傲的黑客解决方案是定义两个关系,一个有垃圾,另一个没有。@user3844579请确认您想要的是哪一个关系?@user3844579请用canges更新您问题的代码。此外,请解释您尝试过的代码以及您试图实现的目标。