外部の理由により、結合レコードを結合の一部として保存するのではなく、直接保存する必要がある状況があります。これが私が意味することです:
Firm
外部ソースからデータを取得するモデルがあります。County
アプリ データベースにモデルがあります- これらの外部企業を郡に関連付けるために使用する
counties_firms
結合テーブルがあります。
何がどこに住んでいるのかという理由で、私はモデルを編集していませんし、Firm
モデルを編集していませんCounty
。私は本当に関連付けを編集しているだけです。Firm
会社のデータを処理するために必要なすべてをカプセル化するモデルがあり、これらのメソッドの 1 つがFirm::saveCounties( $data )
. これ:
- 関連付ける必要がある企業 ID と郡 ID を含む着信データを受け入れます。
- その郡の既存のすべての結合レコードを削除します
- 新しい結合レコードをすべて保存しようとします。
私が見つけたのは、最後の郡の記録だけが保存されているということです。着信データは次のとおりです。
Array
(
[0] => Array
(
[firm_id] => 13
[county_id] => 4fa16e24-a25c-4523-8a9e-7d1d147402e8
)
[1] => Array
(
[firm_id] => 13
[county_id] => 4fa16e27-ccd0-4f22-97da-7d1d147402e8
)
[2] => Array
(
[firm_id] => 13
[county_id] => 4fa16e4a-68f8-4fb1-95bb-7d1d147402e8
)
)
そのデータが与えられたので、 と の間のオンザフライの関連付けを作成し、Firm
をCountiesFirm
試みてい$this->CountiesFirm->saveAll( $data )
ます。
前述したように、この例では 3 つの郡の関連付けのうち最後の 1 つだけが保存されています。私が見逃している可能性のあるものはありますか?
ありがとう。