Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 27.11.2019 19:23:59

Создание таблиц БД с помощью кода

Доброго времени суток.
Вопрос, можно ли создавать таблицы в БД в контроллере?
Суть вопроса, необходимо автоматически создавать таблицы БД с произвольным названием, но структура у всех будет одинаковая.

Приблизительно, то что должно получиться:

public function create_table($prefix){
  ...какая-то логика...
  $name_table = $prefix."_table";
  $columb1 = "columb1"

 ...
 $columbn = "columbn"


}

Обшарил гугл, но везде описывается примеры использования миграций.

Буду рад любой помощи. Заранее спасибо.

Не в сети

#2 27.11.2019 20:32:48

Re: Создание таблиц БД с помощью кода

Вопрос снимается.
Оказалось всё очень просто. В контроллере необходимо прописать код, который прописывается в миграциях

        if (!Schema::hasTable('blabla')) {
            Schema::create('blabla', function (Blueprint $table) {
                $table->bigIncrements('id');
                $table->string('columb1')->comment('Название столбца 1');
                $table->string('columb2')->comment('Название столбца 2');
                $table->softDeletes()->comment('Дата деактивации');
                $table->timestamps();
            });
        }

и не забыть подключить классы

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

Не в сети

#3 27.11.2019 21:35:59

Re: Создание таблиц БД с помощью кода

Технически возможно. Но зачем?


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#4 28.11.2019 12:28:29

Re: Создание таблиц БД с помощью кода

Технически возможно. Но зачем?

У меня на проекте рабочем например, много где создаются временные таблицы(живут пока открыта вкладка браузера) с разного рода данными, которые подготавливают кастомеры и после сейва они уже пишутся куда и как надо. Так что зависит от задач мне кажется)

Не в сети

#5 30.11.2019 13:01:07

Re: Создание таблиц БД с помощью кода

@Eskono, структура этих таблиц вероятно заранее известна? То есть они всегда одинаковые. Зачем их создавать заново, ведь это довольно дрогая операция. Если надо разделять данные пользователей, достаточно добавить user_id или session_id.


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

Подвал раздела