2013-04-11 42 views
0

我想保存一个数组,如下所示与saveAssociated和深层选项设置为true,但它不是保存答案,只有测验和问题。我使用CakePHP 2.3.1CakePhp saveAssociated深=真不工作

$myarray = array(
    'Quiz' => array(
     'title' => 'Test di Prova copy', 
     'description' => '', 
     'timer' => '5', 
     'days' => '10', 
     'tries' => '2', 
     'pass_percentage' => '90', 
     'active' => true 
    ), 
    'Question' => array(
     (int) 0 => array(
      'question' => 'Quanti valori può assumere un bit?', 
      'score' => '10', 
      'position' => '0', 
      'created' => '0000-00-00 00:00:00', 
      'modified' => '2013-04-10 13:04:50', 
      'Answer' => array(
       (int) 0 => array(
        'answer' => '2', 
        'right' => true 
       ), 
       (int) 1 => array(
        'answer' => '4', 
        'right' => false 
       ), 
       (int) 2 => array(
        'answer' => '8', 
        'right' => false 
       ), 
       (int) 3 => array(
        'answer' => 'non lo sò 
', 
        'right' => false 
       ) 
      ) 
     ), 
     (int) 1 => array(
      'question' => 'Quale tra questi tag Html identifica l'header più grande di dimensioni?', 
      'score' => '10', 
      'position' => '2', 
      'created' => '0000-00-00 00:00:00', 
      'modified' => '2013-04-10 13:04:50', 
      'Answer' => array(
       (int) 0 => array(
        'answer' => 'H6', 
        'right' => false 
       ), 
       (int) 1 => array(
        'answer' => 'H4', 
        'right' => false 
       ), 
       (int) 2 => array(
        'answer' => 'H1', 
        'right' => true 
       ) 
      ) 
     ), 
     (int) 2 => array(
      'question' => 'Da quanti bit è composto un byte?', 
      'score' => '10', 
      'position' => '1', 
      'created' => '0000-00-00 00:00:00', 
      'modified' => '2013-04-10 13:04:50', 
      'Answer' => array(
       (int) 0 => array(
        'answer' => '2', 
        'right' => false 
       ), 
       (int) 1 => array(
        'answer' => '4', 
        'right' => false 
       ), 
       (int) 2 => array(
        'answer' => '6', 
        'right' => false 
       ), 
       (int) 3 => array(
        'answer' => '8', 
        'right' => true 
       ) 
      ) 
     ) 
    ) 
); 

$这 - > Quiz-> saveAssociated($ myarray中,阵列( '深'=>真));

+0

1)请尝试使用真实的模型名称,2)包含您的关联,3)您为什么要保存空的数据? – Dave 2013-04-11 16:44:58

+0

根据你的代码,我正确地认为'Model1' hasMany' Model2' hasMany'Model3'? – 2013-04-11 20:04:08

+0

我使用真实的代码更新了上面的代码,以避免误解。 – user2271228 2013-04-12 07:24:08

回答

1

该数据结构可以与saveAll一起使用,你试过了吗?

<?php 

$this->Model1->saveAll($myarray, array('deep' => true)); 

?> 

saveAll内部调用saveAssociated。

我相信应该适合你。

+0

这解决了我的类似问题。 – ADDruid 2014-05-23 00:22:47