cakephp: как вставить значения для отношения hasmany - PullRequest
0 голосов
/ 12 июля 2011

Как я могу сделать записи в моей таблице загрузок, этот код не работает

это мой массив проектов:

[Project] => Array ( [name] => Testproject [description] => TestDescription [Upload] => Array ( [0] => Array ( [name] => testlink1 [Type] => link )

                        [1] => Array
                            (
                                [name] => testlink2
                                [Type] => link
                            )

                        [2] => Array
                            (
                                [name] => testlink3
                                [Type] => link
                            )

                    )

)

Я написал

foreach($this->data['Project']['Upload'] as $key=>$value) 
{
    $this->data['Upload'][$key]['project_id'] = $this->Project->id; 
    $this->data['Upload'][$key]['name'] = $value['name'];
    $this->data['Upload'][$key]['type'] = $value['Type'];
    $this->data['Upload'][$key]['created'] = date("Y-m-d H:i:s"); 
    $this->data['Upload'][$key]['modified'] = date("Y-m-d H:i:s");
    $this->Project->Upload->save($this->data['Upload'][$key]);
}

1 Ответ

1 голос
/ 12 июля 2011

Вам не нужен foreach.Просто убедитесь, что у вас есть правильные ассоциации:

/app/models/project.php
var $hasMany = array('Upload');

/app/models/upload.php
var $belongsTo = array('Project');

Если у вас есть массив данных, как сказано выше, вы можете просто использовать $this->Project->saveAll($this->data) для сохранения всего сразу.

ИмеетеИзучите руководство, чтобы получить больше информации о saveAll и о том, как сохранить связанные данные: Сохранение связанных данных модели

...