Laravel 4 同一张表的多个 hasmany
题
我有一个 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
条款。
不隶属于 StackOverflow