【发布时间】:2015-05-25 04:58:14
【问题描述】:
我有一个简单的文章模型和一个用户模型。
文章“属于”一个用户和一个用户“hasMany”文章。
因此我的文章迁移有一个名为“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]:违反完整性约束:1452 无法添加或 更新子行:外键约束失败(
tags.articles, 约束articles_user_id_foreign外键 (user_id) 参考users(id)) (SQL: 插入articles(title,body,updated_at,created_at) 值(标题,一些文本, 2015-03-21 23:19:33, 2015-03-21 23:19:33))
这是我的 AriclesController 上的存储方法:
Article::create([
'title' => Input::get('title'),
'body' => Input::get('text'),
'user_id' => Input::get('userId')
]);
return Redirect::to('articles');
还有几十个标题相似的其他未解决的 Stackoverflow 问题,我正在寻找适合我的具体情况的答案但未成功,因此我提前感谢你好心的陌生人。
如何将文章保存到我的数据库中?
【问题讨论】: