Я занимаюсь сайтом, который прошел через нескольких разработчиков. Сайт использует Zend версии 1.12.0, согласно Zend_Version::VERSION
, что является новой основой для меня. На сайте есть класс формы App_Form_Customers_Edit
, который распространяется на Zend_Form
. Действие формы - это/клиенты/редактирование, а при отправке - метод editAction из CustomersController
.Zend_Form submit> Resource 'controller :: action' not found
Таким образом, чтобы создать новую форму, я создал новый класс App_Form_Customers_EditAddress
в том же каталоге, App_Form_Customers_Edit
, и установите его действие на /customers/editaddress
, создал функцию под названием editaddressAction
в CustomersController
классе и протестировал форму. Но я получаю сообщение об ошибке «Ресурс» клиентов: editaddress «not found»
Сама форма отображается правильно, и насколько я могу судить, я использую тот же шаблон, что и другая форма, которая работает , и кроме того, что не используется команда zf, тот же метод, предписанный здесь в документации Zend: http://framework.zend.com/manual/1.12/en/learning.quickstart.create-form.html
Что мне нужно сделать, чтобы моя новая форма работала? Нужно ли обновлять .zfproject.xml
? Я не вижу ничего там, что связано с рабочей формой.
Вот код App_Form_Customers_Edit
:
class App_Form_Customers_Edit extends Zend_Form
{
public function init()
{
$this->addPrefixPath('App_Form', 'App/Form/');
$this->setMethod('post');
// ... The rest is just calls to $this->addElement
}
}
И для EditAddress
:
class App_Form_Customers_EditAddress extends Zend_Form
{
public function init()
{
$this->addPrefixPath('App_Form', 'App/Form/')
->setMethod('post')
->setAction('/customers/editaddress');
$this->addElement('submit', 'active', ['value' => 'Activate']);
$this->addElement('submit', 'remove', ['value' => 'Remove']);
$this->addElement('hidden', 'id');
}
}
ДА! Вот и все. Понадобился время, чтобы найти его там, где он определил ресурсы в базе данных. Спасибо! – turibe