Сообщение: Элемент должен быть указан строкой или экземпляром Zend_Form_Element

У меня есть форма проверки подлинности, пользователь должен указать свое имя пользователя и пароль, а также информацию о принятии или отказе через базу данных. Я смотрел Zend Framework 1.8 tutorial 4 zend_auth и zend_form part 3, но в моей системе была ошибка:

Сообщение: Элемент должен быть указан строкой или экземпляром Zend_Form_Element

Это моя форма: Login.php (application/forms/Login.php)

<!--?php
Class Application_Form_Login extends Zend_Form
{
 public function __construct($option = null)
 {
 parent::__construct($option);

 $this--->setName('login');
 $username = new Zend_Form_Element_Text('username');
 $username->setLabel('User name:')
 ->setRequired();
 $password = new Zend_Form_Element_Password('password');
 $password->setLabel('Password:')
 -> setRequired('true');
 $login = new Zend_Form_Element_Submit('login');
 $login ->setLabel('Login');
 $this ->addElement(array($username,$password,$login));
 $this->setMethod('post');
 $this->setAction('/authentication/login');
 }
}

и это AuthenticationController.php (приложение/контроллер/AuthenticationController.php)

<!--?php
class AuthenticationController extends Zend_Controller_Action 
{
 public function loginAction()
 {
 $form = new Application_Form_Login();
 $this--->view->form = $form;
 $authAdapter = $this->getAuthAdapter();
 $username='john';
 $password = 'pass1';
 $authAdapter->setIdentity($username)
 ->setCredential($password);
 $auth= Zend_Auth::getInstance();
 $result = $auth->authenticate($authAdapter);
 if ($result->isValid())
 {
 $identity = $authAdapter->getResultRowObject();
 $authStorage = $auth->getStorage();
 $authStorage->write($identity);
 $this->_redirect('index/index');
 } 
 else 
 {
 echo "invalid";
 }

 }
 private function getAuthAdapter()
 {
 $authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Db_Table::getDefaultAdapter());
 $authAdapter->setTableName('users')
 ->setIdentityColumn('username')
 ->setCredentialColumn('password');
 return $authAdapter; 
 }
}

И посмотрите вот так:

<!--?php 
echo $this--->form;
1 ответ

попробуйте добавить элементы через $this->addElements(array($username,$password,$login)); метод addElement (без s) может обрабатывать только один элемент

licensed under cc by-sa 3.0 with attribution.