使用バージョン:Laravel 5.4その後の関連付け
私たちには投稿があり、その投稿には複数の写真が関連付けられています。私たちは、ポストを保管するためにコントローラーを使用し、写真を保管するためにもう1つを使用します。
我々はそうのようなモデルで関係を設定します。私は新しい投稿を作成するフォームに行くとき、私は実際にポストを保存前
class Post extends Model
{
public function pictures()
{
return $this->hasMany(Picture::class);
}
}
class Picture extends Model
{
public function post()
{
return $this->belongsTo(Post::class);
}
}
、私はそのポストに画像を追加することができます。つまり、私が写真を保存するとき、それに関連するポストIDはまだありません。
私の質問は以下のとおりです。
- はのみ PHPを使用して、前またはその後のポストに写真を関連付けるクリーン方法はありますか?
私が現在使っている解決策は、新しい投稿を作成するフォームに行くと、手前に空白の新しい投稿が作成され、そのURLにIDを渡すということです。それを行うにはより良い方法でなければなりません。
最初に投稿を作成してから写真を作成するのはどうですか? – Vikash
写真は投稿作成フォームの一部です。ユーザーが画像を追加すると、実際の投稿はまだ作成されていません。投稿が保存されるときに関連付けを行う必要があります。 – Ruben
また、同じフォームから最初に投稿を作成してから、同じコントローラ機能で画像をアップロードすることができます。まれにポストが作成され、写真がアップロードされなかった場合には、laravelのクエリビルダートランザクションを使用するか、失敗した場合に投稿IDを収集して削除することができます。 try catchブロックを使用することができます。 – Vikash