为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel:无法迁移。一般错误:1005

Laravel:无法迁移。一般错误:1005

PHP
噜噜哒 2022-01-08 20:11:26
我正在关注 Laracasts TDD,但遇到了一个错误,无论我做什么都无法解决。当我尝试迁移时,它向我显示此错误:Illuminate\Database\QueryException : SQLSTATE[HY000]: General error: 1005 Can't create table birdboard。#sql-14b8_86(errno: 150 "Foreign key constraint is wrongly forms") (SQL: alter table projectsadd constraint projects_owner_id_foreignforeign key ( owner_id) 引用users( id))我知道 Laravel 现在使用 unsignedBigInteger 而不是 unsignedInteger 和 bigIncrements 而不是 Increments。我已经完成了所有这些。在我的 AppServiceProvider.php 中,我还添加了:use Illuminate\Support\Facades\Schema;    public function boot()    {        Schema::defaultStringLength(191);    }应用服务提供商:<?phpnamespace App\Providers;use Illuminate\Support\ServiceProvider;use Illuminate\Support\Facades\Schema;class AppServiceProvider extends ServiceProvider{    public function register()    {        //    }    public function boot()    {        Schema::defaultStringLength(191);    }}创建项目表<?phpuse Illuminate\Support\Facades\Schema;use Illuminate\Database\Schema\Blueprint;use Illuminate\Database\Migrations\Migration;class CreateProjectsTable extends Migration{    public function up()    {        Schema::create('projects', function (Blueprint $table) {            Schema::dropIfExists('projects');            $table->bigIncrements('id');            $table->unsignedBigInteger('owner_id');            $table->string('title');            $table->text('description');            $table->timestamps();            $table->foreign('owner_id')->references('id')->on('users')->onDelete('cascade');        });    }    public function down()    {        Schema::dropIfExists('projects');    }}你能告诉我我的代码有什么问题吗?为什么会出现错误? https://prnt.sc/p5ku4x
查看完整描述

1 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

我认为您也需要编辑问题并发布您的所有者模型。数据类型可能有所不同。

$table->unsignedBigInteger('owner_id');

验证您是否在两个表中使用相同的数据类型,用于外部表中的 owern_id 和主表中的 id


查看完整回答
反对 回复 2022-01-08
  • 1 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信