2015-03-25 1 views
0

Я получаю новый набор данных каждую четверть в одной таблице с добавлением _yyyymm до конца. Это Zipcodes (US)/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. 

Что я положил в моей модели Почтовый индекс, так что модель на самом деле набор данных пользователь заинтересован и не только таблица поиска?

Это все в Laravel 5.

+0

Так что вы хотите изменить таблицы вручную (по указанию пользователей)? – Kyslik

+0

@ Kyslik По существу, да. – mikelovelyuk

+0

(Logic): создайте новую таблицу, в которой будут перечислены все возможные имена таблиц набора данных, после использования рассматриваемой модели сообщите, какая таблица должна искать в GET, сеансе, убедитесь, что вы определяете значение по умолчанию (возможно, в файле конфигурации), если не указано выше. И изменение имени таблицы просто просто «protected $ table = whatevertablenameyouw;»; – Kyslik

ответ

0

Я хотел бы получить имя таблицы с простой находке, а затем использовать имя таблицы в модели, что-то вроде:

public static function lookup($id) { 
    $table = self::find($id)->tablename; 
    return Db::table($table)->where(...); 
} 
Смежные вопросы