Laravel добавление дополнительного поля в таблицу приводит к общей ошибке: 2057 - PullRequest
0 голосов
/ 26 октября 2018

Моя проблема довольно проста, но я не могу найти ответ на этот конкретный вопрос.

Дело в том, что у меня есть миграция в Laravel:

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name')->unique();
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        //$table->string('guid');
        $table->boolean('verified')->default('0');
        $table->integer('tribe_id')->length(10)->unsigned()->default('1');
        $table->boolean('admin')->default('0');
        $table->rememberToken();
        $table->timestamps();
    });
    Schema::table('users', function($table) {
        $table->foreign('tribe_id')->references('id')->on('tribes')->onDelete('cascade');
    });
}

Как видите, я прокомментировал одно поле. Но когда я удаляю // и запускаю миграцию (на чистой БД) и когда я пытаюсь выполнить вход в систему, он возвращает это:

lluminate \ Database \ QueryException (HY000)
SQLSTATE[HY000]: General error: 2057 A stored procedure returning result sets of different size was called. This is not supported by libmysql (SQL: select * from `users` where `email` = email@email.com limit 1)

Основная часть этого кода авторизации генерируется по умолчанию. Laravel artisan make: auth command.

Дело в том, что у меня уже есть несколько дополнительных полей, и это работает, но по какой-то причине, когда я добавляю новое 'guid' (или другое, неважно имя), оно нарушает то, что я пропустил. ..

РЕДАКТИРОВАТЬ: Это как-то связано с базой данных MySQL. Я изменил это с сервера Shared Hosting MariaDB на Google Cloud (5.7), и он работает ...

РЕДАКТИРОВАТЬ 2: Решил это, создав другую базу данных с другим именем (воссоздание с тем же именем не сработало), и он снова начал работать ...

1 Ответ

0 голосов
/ 27 октября 2018
Schema::table('users', function(Blueprint $table) {
    $table->foreign('tribe_id')->references('id')->on('tribes')->onDelete('cascade');
});

попробуй поместить Blueprint в таблицу вот так ...

или вы можете поместить строку $ table-> foreign () ... внутри метода create ..

...