Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Доброго времени суток.
Вопрос, можно ли создавать таблицы в БД в контроллере?
Суть вопроса, необходимо автоматически создавать таблицы БД с произвольным названием, но структура у всех будет одинаковая.
Приблизительно, то что должно получиться:
public function create_table($prefix){
...какая-то логика...
$name_table = $prefix."_table";
$columb1 = "columb1"
...
$columbn = "columbn"
}
Обшарил гугл, но везде описывается примеры использования миграций.
Буду рад любой помощи. Заранее спасибо.
Не в сети
Вопрос снимается.
Оказалось всё очень просто. В контроллере необходимо прописать код, который прописывается в миграциях
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;
Не в сети
Технически возможно. Но зачем?
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Технически возможно. Но зачем?
У меня на проекте рабочем например, много где создаются временные таблицы(живут пока открыта вкладка браузера) с разного рода данными, которые подготавливают кастомеры и после сейва они уже пишутся куда и как надо. Так что зависит от задач мне кажется)
Не в сети
@Eskono, структура этих таблиц вероятно заранее известна? То есть они всегда одинаковые. Зачем их создавать заново, ведь это довольно дрогая операция. Если надо разделять данные пользователей, достаточно добавить user_id или session_id.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Страницы 1