一种形式有多个输入

时间:2012-04-19 13:01:04

标签: cakephp cakephp-2.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内容,则上述控制器可以正常工作,但如果我在View中使用for循环来表示多个input,则它无法正常工作。如何在关联表中保存多个input的内容?我试过了saveMany()saveAssociated()&amp; saveAll()但没有任何效果,显然我做错了什么。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

将您的for语句更改为:

for ($i = 0; $i < 5; $i++) {
    echo $this->Form->input('Item.'. $i+1 .'.content', array('label'=>'Προσθήκη αντικιμένου'));
}

答案 1 :(得分:0)

for ($i = 0; $i < 5; $i++) {
    echo $this->Form->input('Item.content.'.($i+1),array('name' => 'data[Item][content][]', 'label'=>'Προσθήκη αντικιμένου'));
}