Добрый день. Как можно изменить значение protected $table при подключении модели в контроллере? Зачем: у меня для каждой страницы с вопросамы создана своя таблица: answers_01, answers_02, ... , answers_30 Создавать и подключать все 30 моделей в контроллере для каждой таблицы - думаю не стоит, тем более, что структура таблиц одинакова. При создании новой записи сейчас использую класс: PHP: class Answers extends Model { protected $table = 'answers_'; public $timestamps = true; public static function table($id) { $this->table = 'answers_'.$id; } } и в контроллере вызываю: PHP: $answers = new Answers; $answers->table('01'); ... $answers->save(); Нужно воспользоваться методом firstOrNew. Пробовал сделать вот так: Код (Text): $answers = Answers::table('01'); но получил ошибку: Using $this when not in object context
Так не работает. Объект модели не может менять таблицу. Смотри "полиморфные связи" чтобы как-то распределять обращение к разным моделям-таблицам.
не надо так делать Сделай категории вопросов и поле в одной таблице. Ты своей тысячью таблиц ничего вообще не выигрываешь. С индексом по категории выборка будет работать очень быстро. --- Добавлено --- Вообще, по опыту, в Laravel лучше не вмешиваться в его кухню, называть ключи так, как ожидает Laravel, называть таблицы так, как ожидает Laravel и т.п. Он тогда лучше работает.