I would like to save several records for one model. This would have been done pretty easily with saveAll() if it hadn’t been for a problem:
I have a notification form, where I select multiple users from a <select> and two fields, for subject and content respectively. Now, when I output what $this->data contains, I have:
Array([Notification] => Array
(
[user_id] => Array
(
[0] => 4
[1] => 6
)
[subject] => subject
[content] => the-content-here
)
)
I’ve read on Cake 1.3 book, that in order to save multiple records for a model, you have to have the $this->data something like:
Array([Article] => Array(
[0] => Array
(
[title] => title 1
)
[1] => Array
(
[title] => title 2
)
)
)
So, how do I ‘share’ the subject and content to all selected users?
First off, this database design needs to be normalized.
It seems to me like a
Notificationcan have manyUsers related to it. At the same time, aUsercan have manyNotifications. Therefore,In the view, you can simply use the following code to automagically bring up the multi-select form to grab user ids:
The data that is sent to the controller will be of the form:
Now, all you have to do is called the saveAll() function instead of save().
And that’s the Cake way to do it!