我收到错误:
完整性约束违规:19 NOT NULL约束失败:songs.slug(SQL:插入"歌曲"("标题"," updated_at",&# 34; created_at")值(只要你爱我测试,2014-10-22 04:09:02,2014-10-22 04:09:02))
尝试更新歌曲时。任何人都知道我做错了什么?
这是我的更新功能:
public function update(Song $song, Request $request)
{
$song->fill(['title' => $request->get('title')])->save();
return redirect('songs');
}
有谁能帮我理解这里有什么问题?我跟着一个Laracast来构建这个函数,看起来应该只是给它这个约束错误。请帮助:))
答案 0 :(得分:0)
确保您的歌曲模型中设置了protected $fillable = ['title'];
,因为Laravel可以防止质量分配(使用 - > fill()),这意味着它将忽略您传入填充方法的任何键/值以前没有在模型的$ fillable属性中定义!
答案 1 :(得分:0)
正如此错误所说
Integrity constraint violation: 19 NOT NULL constraint failed: songs.slug (SQL: insert into "songs" ("title", "updated_at", "created_at") values (As Long As You Love Me test, 2014-10-22 04:09:02, 2014-10-22 04:09:02))
slug
表的songs
列为NOT NULL
,在保存模型之前,您尚未为其设置值。