2014-09-19 46 views
0

我試圖提交一組已從.csv文件導入的表單數據,並且在提交表單時我丟失了數據。從視圖中添加表單數據時未將表單數據傳遞給控制器​​

我在Chrome開發工具中檢查POST請求,數據在POST請求中,但如果我在控制器中爲debug($this->data);,則它是空的。

下面是一些相關的代碼:

admin_add_template.ctp(我認爲)

<?php for ($i=0; $i < $line - 1; $i++) : ?> 

    <?php echo $this->Form->create('ActiveQuoteItem');?> 
    <fieldset> 
    <legend>Quote Template <?= $i; ?></legend> 
    <!--     <input type="hidden" name="xxxx" id="xxxx" value="xxxx" />--> 
    <input name="quote_item_id" id="quote_item_id" value="<?php echo $out[$i][2] ; ?>" /> 
    <input name="estimated_cost" id="estimated_cost" value="<?php echo $out[$i][3] ; ?>" /> 
    <input name="actual_cost" id="actual_cost" value="<?php echo $out[$i][4] ; ?>" /> 
    <input name="billed_at" id="billed_at" value="<?php echo $out[$i][5] ; ?>" /> 
    <input name="inquiry_id" id="inquiry_id" value="<?php echo $the_id; ?>" /> 
    <input name="active" id="active" value="<?php echo $out[$i][7] ; ?>" /> 
    <input name="timeline" id="timeline" value="<?php echo $out[$i][8] ; ?>" /> 
    <input name="timeline_rushed" id="timeline_rushed" value="<?php echo $out[$i][9] ; ?>" /> 
    <input name="title" id="title" value="<?php echo $out[$i][10] ; ?>" /> 
    <input name="description" id="description" value="<?php echo $out[$i][11] ; ?>" /> 
    <input name="category" id="category" value="<?php echo $out[$i][12] ; ?>" /> 
    <input name="quantity" id="quantity" value="<?php echo $out[$i][13] ; ?>" /> 
    </fieldset> 
<?php endfor; ?> 

<?php echo $this->Form->end(__('Save', true)); ?> 

active_quote_items_controller.php(我控制器)

function admin_add_template() { 
    if (!empty($this->data)) { 
    $this->ActiveQuoteItem->create(); 
    if ($this->ActiveQuoteItem->saveAll($this->data['ActiveQuoteItem'])) { 
     $this->Session->setFlash(__('The active quote item has been saved', true)); 
     $this->redirect(array('action'=>'index','inquiry_id'=>$this->data['ActiveQuoteItem']['inquiry_id'])); 
    } else { 
     $this->Session->setFlash(__('The active quote item could not be saved. Please, try again.', true)); 
    } 
    } 
} 
+1

在你的控制器中使用'$ this-> request-> data'而不是'$ this-> data'。 – marian0 2014-09-19 18:25:47

+0

正在使用CakePHP 1.3? – 2014-09-19 20:53:36

+0

是的,我只是意識到我忘了包含我正在使用的版本。我正在使用Cake 1.3。 – 2014-09-19 21:09:56

回答

0

好的,問題是我的輸入名稱。

相反的輸入,如:

<input name="quote_item_id" id="quote_item_id" value="<?php echo $out[$i][2] ; ?>"

它需要如:

<input type="hidden" name="data[<?php echo $i; ?>][quote_item_id]" id="quote_item_id" value="<?php echo $out[$i][2] ; ?>" />

換句話說,我忘記使其形式進入一個數據陣列中該視圖,所以當我試圖在控制器中調試$this->data時,我沒有得到任何東西。

0

你說

$this->ActiveQuoteItem->saveAll($this->data['ActiveQuoteItem']) 

但您的表單在我看來像它會提供的數據格式,將對應

$this->ActiveQuoteItem->save($this->data) 
相關問題