RozMakc
@RozMakc

Как в модели указать динамически изменяющееся название таблицы?

Всем привет, есть таблицы table_1, table_2, table_3, table_4 и тп
есть модель Tables
чтобы не создавать кучу моделей под каждую таблицу, как сделать в модели Tables указание нужной таблицы

сделал так:
protected $table;    
    public function __construct($type) {
        $this->table = 'table_' . $type;
    }


но понимаю что хрень какая-то. да и запрос по типу
$Tables = new Tables(1);
$Tables->where('id',1)->get();

ругается "Array to string conversion"
подскажите как такое реализовать
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
не надо так делать...

Вы похоже вместе работаете?
Как в Laravel вернуть controller & action в роуте?

Одна модель, один контроллер.

Может фреймворк и не нужен тогда?)
Ответ написан
ellrion
@ellrion
сделайте статик метод в модели

/**
 * @param $tableNumber
 */
public static function switchTo($tableNumber)
{
    $instance = new static;
    $instance->setTable("table_{$tableNumber}");

    return $instance->newQuery();
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 17:06
15000 руб./за проект
19 апр. 2024, в 16:53
1000 руб./за проект
19 апр. 2024, в 16:45
5000 руб./за проект