如何根据用户选择切换模型中的表

时间:2015-03-25 17:03:54

标签: oop laravel eloquent

我在一个表格中每个季度都会获得一个新数据集,并在末尾附加_yyyymm。这是Zipcodes(美国)/ Postcodes(英国)相关。

用户将要选择他希望使用的数据集。那么如何在不创建多个模型的情况下实现这一目标(每个数据集一个)?

我有一个带有表名的postcodes_lookup表,然后我的模型需要使用他们选择的表,然后生成一些结果。我的查找表;

| id | tablename        | created_on
-------------------------------------
| 1  | postcodes_201502 | 20150201
| 2  | postcodes_201503 | 20150301
| 3  | postcodes_201504 | 20150401

我的控制器有这个;

$postcodes = Postcodes::postcodes_lookup($id); //id is the postcodes_lookup id.

我在Postcode模型中放入什么,以便模型实际上是用户感兴趣的数据集,而不仅仅是查找表?

这一切都在Laravel 5中。

1 个答案:

答案 0 :(得分:0)

我会用一个简单的查找得到表名,然后在模型中使用表名,如:

public static function lookup($id) {
    $table = self::find($id)->tablename;
    return Db::table($table)->where( ... );
}