2

私はlaravelの関係を理解することに取り組んでいます。予約と領収書という 2 つのテーブル間に関係を設定しています。領収書は予約に属し、予約には多くの領収書があります。基本的な使い方は問題なく、領収書を予約に関連付けることができます。ただし、更新プロセスを実行する方法がわかりません。フォームから、予約に対して処理する領収書を保存するカートを備えたカートタイプのアプリケーションがあり、カートには既存の領収書、ユーザーが追加した新しい領収書が含まれ、ユーザーが領収書を削除した可能性があります。よくわからないことがいくつかあります。

予約記録から領収書の詳細を更新したいだけの場合、どうすればよいですか?

私が試してみました:

$reservation->invoice->update();

と:

$reservation->invoice->save();

プロパティを更新した後、これらのメソッドでエラーが発生します: メソッドが見つかりません。その場合、関係とは別にレコードを見つけて、通常どおり更新するだけでよいと思いますか?

次に、関連するもう 1 つの質問は、ロジックの 1 つです。私のカートには、領収書テーブルに対して投稿または更新する領収書のコレクションがあります。領収書のコレクションを取得して比較できます。

これを行う最善の方法は何ですか。カート コレクションを反復処理するか、レシート コレクションを反復処理します。2 つのカート間の情報から、ユーザーが削除したいレシートを簡単に特定するにはどうすればよいですか?

2 つのコレクションを比較し (配列に変換できます)、削除するレコードの ID を取得する PHP メソッドはありますか。

ここでぐるぐる回ります

アドバイスをいただければ幸いです

4

1 に答える 1

1

1 つの質問であなたが提起している問題はたくさんあります...しかし、$reservation->invoice から返されたオブジェクトを確認することをお勧めします。予約と請求書は 2 つの別個のエンティティですが、1 対多の関連エンティティであると提案されました。そのため、 を呼び出すと$reservation->invoices、Laravel が請求書モデルのコレクションを返すことで支援し、それらを繰り返し処理して更新できるようにします。また、リレーションシップ メソッドをどのように利用できるかを確認することもできます ( $reservation->invoices())

あなたの他の質問について... PHPドキュメントはあなたの友人です参照:array_diffおよびarray_intersect型関数

于 2013-09-24T02:56:22.030 に答える