php - 拉维尔 5 : Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails

标签 php mysql laravel

我有一个简单的文章模型和一个用户模型。

文章“属于”一个用户和一个用户“有许多”文章。

因此我的文章迁移有一个名为“user_id”的外键。

    Schema::create('articles', function(Blueprint $table) {
        $table->increments('id');
        $table->string('title');
        $table->text('body');
        $table->integer('user_id')->unsigned();
        $table->foreign('user_id')->references('id')->on('users');
        $table->timestamps();
    });

然而,每当我创建一篇文章并在隐藏字段中传递“user_id”时,我都会收到一条错误消息。

{!! Form::open(array('route' => 'articles.store')) !!}

    {!! Form::hidden('userId', $user->id) !!}

    <div class="form-group">
        {!! Form::label('title', 'Title') !!}
        {!! Form::text('title', null, array('class' => 'form-control')) !!}         
    </div>

    <div class="form-group">
        {!! Form::label('text', 'Write your Article') !!}
        {!! Form::textarea('text', null, array('class' => 'form-control')) !!}          
    </div>

    {!! Form::submit('Create Article', array('class' => 'btn btn-default btn-success')) !!}
{!! Form::close() !!}

这是错误信息。我知道我不会尝试将“user_id”的值插入到文章表中。

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (tags.articles, CONSTRAINT articles_user_id_foreign FOREIGN KEY (user_id) REFERENCES users (id)) (SQL: insert into articles (title, body, updated_at, created_at) values (Title, Some text, 2015-03-21 23:19:33, 2015-03-21 23:19:33))

这是我的 AriclesController 上的 Store 方法:

    Article::create([
        'title'   => Input::get('title'),
        'body'    => Input::get('text'),
        'user_id' => Input::get('userId')
    ]);

    return Redirect::to('articles');

还有许多其他具有类似标题的开放式 Stackoverflow 问题,我正在搜索适合我的具体情况的答案但未成功,因此我提前感谢您好心的陌生人。

如何将文章保存到我的数据库中?

最佳答案

确保您的 Article 模型的 fillable 属性中有 user_id

http://laravel.com/docs/5.0/eloquent#mass-assignment

关于php - 拉维尔 5 : Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29189311/

相关文章:

php - 如何在不访问 Laravel (PHP) 中的 Web 的情况下更新表格?

php - 如何在一串值中添加逗号

javascript - PHP 中的服务器错误 500

mysql - 如何优化 InnoDB 内存参数以提高性能?

mysql - 从静态日期计算 MySQL 中的年度到期时间

php - Laravel 数据透视表中的一对多关系?

后台错误中的php exec c程序

php - onclick 将 HTML 从一个页面保存到另一个页面

mysql - 在MySQL中查询系统数据

mysql - 使用 case 和when 语句加入 laravel