我的问题很简单,但我找不到这个特定问题的任何答案。
问题是,我在 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 命令默认生成的。
问题是,我已经有一些额外的字段并且它确实有效,但是由于某种原因,当我添加“guid”新字段(或另一个,名称无关紧要)时,它破坏了我错过的东西......
编辑:它与 MySQL 数据库有关。我将其从 Shared Hosting MariaDB 服务器更改为 Google Cloud (5.7),它正在工作......
EDIT2:通过使用另一个名称创建另一个数据库来解决它(用相同的名称重新创建不起作用)并且它再次开始工作......