我为多个表定义了一个Model,如下所示: Laravel 4: can one model serve several DB tables?
模型Data有很多表:
data_2001
...
在这个模型中处理它们:
class Data extends \Eloquent {
public function __construct($year, array $attributes = array())
{
parent::__construct($attributes);
$this->table = 'data_' . $year;
}
public function country()
{
return $this->belongsTo('Country');
}
}
与国家有一对多的关系
class Country extends \Eloquent {
protected $table = 'countries';
public function data($year)
{
return $this->hasMany('Data('.$year.')');
}
public function region()
{
return $this->belongsTo('Region');
}
}
正如我所预料的那样,如果只返回$this->hasMany('Data')
就会丢失一个参数,所以我尝试了$this->hasMany('Data('.$year.')')
但当然会返回错误:
未找到“数据(2000)”类
是否有一种解决方法可以使用eloquent的方法从所有表或一个表中获取所有Country->数据?或者我应该使用where('country_id', '=', $country->id)
在此先感谢,任何想法都表示赞赏。