2014-01-16 28 views
0

我的問題是基於下面的代碼:不正確的形式方法

<?php echo $this->Form->create(
    'Page', array(
    'url' => array(
     'controller' => 'pages', 
     'action' => 'delete', 
     $this->request->data['Page']['id'], 
     'admin' => true 
    ), 
    'id' => 'PageDeleteForm', 
    'method' => 'POST', 
    'class' => 'hide' 
) 
); ?> 
<?php echo $this->Form->end() ?> 

CakePHP所產生的結果是:

<form action="/admin/pages/delete/16" id="PageDeleteForm" method="post" class="hide" accept-charset="utf-8"> 
    <div style="display:none;"> 
     <input type="hidden" name="_method" value="PUT"> 
    </div> 
</form> 

因爲我的刪除方法的返回值:方法不允許,並且該寄存器不被刪除。

的問題,謎

所以,問題是:爲默認,CakePHP的創建形式方法=> POST,並設置與POST的輸入了。但在我的情況,它的設置PUT。爲什麼?

操作:

/** 
* admin_delete method 
* 
* @throws NotFoundException 
* @param string $id 
* @return void 
*/ 
    public function admin_delete($id = null) { 
    $this->Page->id = $id; 
    if (!$this->Page->exists()) { 
     throw new NotFoundException(__('Página inválida')); 
    } 

    $this->request->onlyAllow('post', 'delete'); 

    $page = $this->Page->getById($id); 

爲什麼CakePHP的重寫我的指令('method' => 'POST')和更改PUT?

對不起,我的英語。

回答

0

你有一個錯字:

'methdo' => 'POST', 

此外,如果你刪除你想使用「刪除」的東西。

我不確定爲什麼Cake默認使用放在這裏給你。

+0

是的,抱歉。我現在用'method'=>'POST'來測試。並不起作用。 –

0

修復第一個問題!

'type' => 'POST' 

而是'method' => 'POST'


問題二:如果刪除'type' => 'POST',輸入保值PUT。


因此,問題現在解決了,我仍然不明白爲什麼CakePHP在輸入中設置PUT。