Laravel Database Eloquent Relation查询具有多个表的一个模型

时间:2015-01-30 08:04:26

标签: laravel model eloquent relation

我为多个表定义了一个Model,如下所示: Laravel 4: can one model serve several DB tables?

模型Data有很多表:

  • data_2000
  • 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)

来运行多年的多个查询

在此先感谢,任何想法都表示赞赏。

0 个答案:

没有答案