1

ビューに次のフォームがあります。

echo $this->Form->create('Listing',array('type' => 'file'));
echo $this->Form->select('',array('0'=>'Τα καλύτερα','1'=>'Οι καλύτεροι','2'=>'Οι καλύτερες'));
echo $this->Form->input('title');
for ($i = 0; $i < 5; $i++) {
    echo $this->Form->input('Item.content.'.($i+1),array('label'=>'Προσθήκη αντικιμένου'));
}
echo $this->Form->input('picture', array('type' => 'file','label'=>'Φωτογραφία:'));
echo $this->Form->input('description', array('rows' => '4','label'=>'Περιγραφή:'));
echo $this->Form->end('Αποθήκευση Λίστας');

コントローラーには次のコードがあります。

public function add() {

        if ($this->request->is('post')) {

            if ($this->Listing->Save($this->request->data)) {

                $this->request->data['Item']['listing_id'] = $this->Listing->id;
                $this->Listing->Item->save($this->request->data);   
                $this->Session->setFlash('Η λίστα αποθηκεύτηκε');   
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash('Αδύνατη η αποθήκευση της λίστας.');
            }
        }   
}

上記のコントローラーinputは、フォームにコンテンツ用のコントローラーがある場合は機能forしますが、複数のビューでループを使用するinputと機能しません。input複数のコンテンツを関連付けられたテーブルに保存するにはどうすればよいですか? を試しましたがsaveMany()、何も機能しませんでした。明らかに、何か間違ったことをしました。なにか提案を?saveAssociated()saveAll()

4

2 に答える 2

0
for ($i = 0; $i < 5; $i++) {
    echo $this->Form->input('Item.content.'.($i+1),array('name' => 'data[Item][content][]', 'label'=>'Προσθήκη αντικιμένου'));
}
于 2012-04-19T15:18:08.583 に答える
0

for ステートメントを次のように変更します。

for ($i = 0; $i < 5; $i++) {
    echo $this->Form->input('Item.'. $i+1 .'.content', array('label'=>'Προσθήκη αντικιμένου'));
}
于 2012-04-19T13:17:37.147 に答える