に私がsave()
機能を使用する場合しかし、私は次のエラーを取得していますオブジェクトを投稿しようとしています:は、外部キー制約は、((保存使用して失敗した)が、作成に失敗していない)ルーメン
Cannot add or update a child row: a foreign key constraint fails
奇妙であることですsave()
の代わりにcreate()
を使用すると、失敗しません。あなたはそれがなぜそれのようなものなのか教えてもらえますか?
これは私が何をすべきかです:
$post = new Post();
$input = $request->all();
$post->save();
これは私のPostモデルである:
class Post extends Model{
protected $fillable = [
'creator_id', 'title'
];
public function user(){
return $this->belongsTo(User::class);
}
}
これは、Userモデルである:
class User extends Model{
protected $fillable = [
'first_name', 'last_name', 'email', 'profile_image_url'
];
protected $hidden = [
'password',
];
}
私はUsersテーブルや記事テーブルを持っています。そして、関係は投稿テーブルでposts.creator_id
はusers.id
です。
refular SQLクエリでもデータが正しく挿入されることにも言及したいと思います。これにより
ユーザーモデルと投稿モデルの両方を投稿できますか?問題は、あなたが別名で別名を付けてあなたのFKを投稿したことかもしれません。 – idelara
また、マイグレーションとEloquentリレーションシップを使用していますか? – idelara
@JackGal私のエイリアスを確認しましたが、すべて同じ名前です。そして、はい、私はEloquentの関係を使用しています。 –