почему таблица не существует в базе данных - PullRequest
0 голосов
/ 11 октября 2019

Что не так с моим кодом ?, миграция выполнена успешно, но таблица не существует

public function up()
{
    Schema::create('student', function (Blueprint $table) {
        $table->varchar('student_id', 6)->primary_key()->nullable(false);
        $table->varchar('student_name', 50)->nullable(false);
        $table->enum('student_class', ['RPL-1','RPL-2','RPL-3'])->nullable(true);
        $table->enum('student_gender', ['MALE','FEMALE'])->nullable(true);
        $table->text('student_address')->nullable(true);
        $table->tinyinteger('student_status', ['1'])->default('1');
        $table->timestamps();
    });
}

1 Ответ

0 голосов
/ 11 октября 2019

Миграция в вашем примере не будет выполняться из-за попытки использовать функции, которые недоступны в Laravel, или из-за неправильного использования этих функций. Я собрал новую миграцию и протестировал ее, и она работает нормально.

Schema::create('student', function (Blueprint $table) {
    $table->string('student_id', 6)->primary_key()->nullable(false);
    $table->string('student_name', 50)->nullable(false);
    $table->enum('student_class', ['RPL-1', 'RPL-2', 'RPL-3'])->nullable(true);
    $table->enum('student_gender', ['MALE', 'FEMALE'])->nullable(true);
    $table->text('student_address')->nullable(true);
    $table->tinyinteger('student_status')->default('1');
    $table->timestamps();
});

Я предположил, что student_id должен быть своего рода уникальным кодом в вашем приложении, поэтому я 'Мы изменили это, чтобы использовать функцию string. Это создаст поле типа varchar со вторым параметром длиной строки.

Я также изменил параметры функции tinyinteger для student_status, похоже, вы пытаетесь указать все возможные значения, аналогично тому, как вы используете enum. Тип tinyinteger не может принимать список возможных значений, поэтому вы можете изменить его на булево (если состояние имеет значение true или false), перечисление или внешний ключ для связанной таблицы, если это уместно.

Если вы используете Eloquent ORM в своем приложении, может не потребоваться префикс всех имен столбцов с student. При правильном использовании вы сможете просто использовать имя сохраняемой переменной, например student_name станет name.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...