2014-01-16 4 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', 

Кроме того, если вы удалите то, что вы хотите использовать 'DELETE'.

Я не уверен, почему Торт по умолчанию использует здесь для вас.

+0

Да, извините. Я тестирую сейчас, используя '' method '=>' POST''. и не работает. –

0

Исправлена ​​первая проблема!

'type' => 'POST' 

Вместо 'method' => 'POST'.


Вторая проблема: если я удалю 'type' => 'POST', вход сохранить значение PUT.


Итак, проблема решена на данный момент, я продолжаю не понимать, почему CakePHP установил PUT во вход.

Смежные вопросы