Php Laravel 4同一表格有多个
我有一个laravel 4应用程序,在这个应用程序中,我需要定义一个与另一个模型相关的模型2次,但在类型上有区别 范例Php Laravel 4同一表格有多个,php,laravel,laravel-4,eloquent,Php,Laravel,Laravel 4,Eloquent,我有一个laravel 4应用程序,在这个应用程序中,我需要定义一个与另一个模型相关的模型2次,但在类型上有区别 范例 class Car extends Eloquent{ public function oldDrivers(){ return $this->hasMany('Driver'); } public function newDrivers(){ return $this->hasMany('Drive
class Car extends Eloquent{
public function oldDrivers(){
return $this->hasMany('Driver');
}
public function newDrivers(){
return $this->hasMany('Driver');
}
}
因此,关系将是driver
表中的car
Id,问题是当我只想获取某辆车的旧驱动程序时,它将返回两个关系中的所有驱动程序
当查看它时,我发现因为它是同一个表,所以现在我在驱动程序
模型中设置了一个类型,现在我希望我的关系按此类型过滤,因此旧驱动程序将仅为具有旧驱动程序类型的驱动程序,而新驱动程序将仅为具有新驱动程序类型集的驱动程序
如何在拉威尔做到这一点?您可以尝试以下方法:
class Car extends Eloquent{
public function oldDrivers(){
return $this->hasMany('Driver')->where('type', 'olddrivers');
}
public function newDrivers(){
return $this->hasMany('Driver')->where('type', 'newdrivers');
}
}
假设数据库中有
类型
字段作为过滤器。如果我对类型
字段有错误,那么您只需将字段
名称更改为正确的名称,因为您知道如何使用where
子句添加过滤器。您可以尝试以下操作:
class Car extends Eloquent{
public function oldDrivers(){
return $this->hasMany('Driver')->where('type', 'olddrivers');
}
public function newDrivers(){
return $this->hasMany('Driver')->where('type', 'newdrivers');
}
}
假设数据库中有
类型
字段作为过滤器。如果我对类型
字段有错误,那么您只需将字段
名称更改为正确的名称,因为您知道如何使用where
子句添加筛选器。您想如何筛选?使用哪个字段,例如,->where('fieldname','fieldvlaue')
?我将其与->where('type','oldDrivers')一起使用,但它不起作用。您的drivers
数据库中有类型字段,该类型
字段是否包含oldDrivers
或newDrivers
?可能应该是oldDriver
或oldDriver
甚至oldDriver
。您想如何筛选?使用哪个字段,例如,->where('fieldname','fieldvlaue')
?我将其与->where('type','oldDrivers')一起使用,但它不起作用。您的drivers
数据库中有类型字段,该类型
字段是否包含oldDrivers
或newDrivers
?可能应该是oldDriver
或oldDriver
甚至oldDriver
。