我有一个 laravel 4 应用程序,在这个应用程序中,我需要定义一个与另一个模型相关的模型 2 次,但要区分类型。

例子

class Car extends Eloquent{

     public function oldDrivers(){
        return $this->hasMany('Driver');
     }

     public function newDrivers(){
        return $this->hasMany('Driver');
     }

}

所以关系是 car 身份证位于 driver的表中,问题是当我只想获取某辆车的旧驱动程序时,它会返回两个关系中的所有驱动程序。

当查看它时,我发现因为它是同一个表,所以现在我在 Driver 模型,现在我希望我的关系按此类型进行过滤,因此 oldDrivers 将仅是具有 oldDriver 类型的驱动程序,而新驱动程序将是仅具有 newDriver 类型集的驱动程序,

在 Laravel 中如何做到这一点?

有帮助吗?

解决方案

你可以尝试这样的事情:

class Car extends Eloquent{

     public function oldDrivers(){
        return $this->hasMany('Driver')->where('type', 'olddrivers');
     }

     public function newDrivers(){
        return $this->hasMany('Driver')->where('type', 'newdrivers');
     }

 }

假设你有 type 字段作为数据库中的过滤器。如果我错了 type 字段,然后你只需更改 field 为正确的名称命名,因为您知道如何使用 where 条款。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top