2
私はプロジェクト&のコメントテーブルの間にhasManyアソシエーションを作成しました。ケーキPHP - HasMany関連を保存する
このurl:/ projects/addから、ユーザーは新しいプロジェクトを作成していくつかのコメントを書くことができます。
要求は、このような配列を返す:バリコメントで
[
'name' => 'Project name',
'comments' => [
(int) 0 => [
'text' => 'This is a comment on this project'
],
(int) 1 => [
'text' => 'Comment'
]
]
]
を、私ははminLength 30ルールを追加しました。
上記の例では、バリデータは2番目のコメントでエラーを返し、録画をブロックします。
私がしたいのは、プロジェクトと良いコメントを保存し、 "プロジェクトは保存されましたが、1つ以上のコメントが保存されませんでした"というエラーを返します。
ありがとうございました!
こんにちは、私は、他のトピックの答えの論理を理解していますが、私はあなたのことを理解していません。あなたの答えを説明できますか? –
ええ、ええ。もう1つの答えは、1つの呼び出しですべての関連データを保存しようとするモデルの関連付けを利用しています。問題は、関連付けられた検証が失敗し、関連するデータのバインドを解除し、別の保存を試行すると、面倒なelse文が発生することです。セーブコールを分離することは、モデルの関連付けを利用するのではなく、ロジックを大幅に簡素化します。各呼び出しでテーブル固有のデータを保存しようとするだけです。つまり、 'comments'検証が失敗してもデータは' projects'テーブルに保存されます。 – bill
この説明のためにタンクしてください。しかし、この方法では、プロジェクトフォーム内でコメントのモデルを使用できますか? –