I've solved the problem myself now by reading the CakePHP cookbook a little
better:
Changed in version 2.1: You can now save deeper associated data as well
with setting $options['deep'] = true;
So for me this was all I needed:
$saveOptions['deep'] = true;
if ($this->Recipe->saveAll($this->request->data, $saveOptions )) {
Den måndagen den 15:e oktober 2012 kl. 21:08:16 UTC+2 skrev Gustav Persson:
>
> Hii,
>
> I'm trying to use the saveAll() method to create and save related data in
> my CakePHP (2.2.1) app. I have a form where the user can input recipe
> information and create recipeitems and ingredients. The problem is that I
> don't know how to store the ingredients data.
>
> I use the saveAll() method in the RecipeController, and this has worked to
> save the Reipce, Categories and RecipeItems, but NOT the Ingredients or
> Groceries.
>
> Is it possible to save all this data at once? If so, what should the input
> data to saveAll look like?
>
> All help is greatly appreciated!
>
>
>
>
> My relationships look like this:
>
> Recipe:
> hasMany: Recipeitem
> hasAndBelongsToMany:Category
>
> Category:
> hasAndBelongsToMany: Recipe
>
> Recipeitem:
> belongsTo: Recipe
> hasMany: Ingredient
>
> Ingredient:
> belongsTo: Grocery, Recipeitem
>
> Grocery:
> hasMany: Ingredient
>
>
> The data I'm passing to saveAll() by
> $this->Recipe->saveAll($this->request->data):
>
> Array
> (
> [Recipe] => Array
> (
> [title] => Tomato pie
> [description] => A tasty pie
> [cooking] => <p>Mix everything!</p>
>
> )
>
> [Category] => Array
> (
> [Category] => Array
> (
> [0] => 5
> [1] => 3
> )
>
> )
>
> [Recipeitem] => Array
> (
> [0] => Array
> (
> [Recipeitem] => Array
> (
> [name] => Deg
> [order] => 0
> [Ingredient] => Array
> (
> [0] => Array
> (
> [Ingredient] => Array
> (
> [amount] => 2
> [unit] => dl
> [order] => 0
> [grocery_id] => 1
> )
>
> )
>
> )
>
> )
>
> )
>
> )
>
> )
>
>
--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
Visit this group at http://groups.google.com/group/cake-php?hl=en.