SERVICE こんな事ができます

CNTACT ご相談はお気軽に

 ABOUT US こんな会社です



2009/05/21 by マッチー

関連付けたらsaveall

送信したデータを保存するとき、saveじゃなくてsaveallを使えば、アソシエーションによって関連付けられたモデルのデータも一緒に保存することができる。

ただ、hasmanyで関連付けたデータは整数のインデックスがついた配列で渡されるので、ちょっと注意が必要。

たとえば、userとclientというモデルがhasmanyで関連付いているとして何か適当なデータを送ると、$this->dataにはこんな感じでデータが入る。

上記のカラム名とかは適当ですが、まあこんな感じです。

どんなデータが送られてきているのか見たければ、print_r($this->data)で見れる。print_rはprと略しても良いらしい。個人的にはこのprはしょっちゅう使う関数だと思う。困ったらとにかくprだ。

saveallをすると各レコードに対してバリデーションも勝手にやってくれるそうだけど、全てのレコードに対してバリデーションを行うには、validateにfirstを入れる必要があるみたい。

僕も最初は関連付けてある方のバリデーションが一向にされなくて困っていたのだけど、これを書いたら解決した。