Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia pessoal estou iniciando com zend 2, e não estou conseguindo mostrar o zend form, la na view, da o seguinte erro
Fatal error: Call to a member function get() on a non-object in
ClientesForm.php
<?php
namespace Login\Form;
use Zend\Form\Form;
use Zend\Form\Element\Text;
use Zend\Form\Element\Submit;
class ClientesForm extends Form
{
public function __construct($name = null)
{
parent::__construct('clientes');
$this->setAttribute('method', 'POST');
//Input Nome
$nome = new Text('nm_clien');
$nome ->setLabel('Nome')
->setAttributes(array(
'placeholder' => 'Nome'
));
$this->add($nome);
//Input Submit
$submit = new Submit('enviar');
$submit ->setValue('Enviar')
->setAttributes(array(
'class' => 'btn btn-primary'
));
$this->add($submit);
}
}
ClientesController.php
<?php
namespace Login\Controller;
use Login\Form\ClientesForm;
use Zend\View\Model\ViewModel;
use Zend\Mvc\Controller\AbstractActionController;
class ClientesController extends AbstractActionController
{
public function indexAction()
{
}
public function CadastrarAction()
{
$form = new ClientesForm();
$view = new ViewModel(array(
'form' => $form
));
$view->setTemplate('login/index/index.phtml');
return $view;
}
}
index.phtml(view)
echo $this->form()->openTag($form);
echo $this->formLabel($form->get('nm_clien'));
echo $this->form()->closeTag($form);
e quando retiro esse get() funciona assim
echo $this->form()->openTag($form);
echo $this->form()->closeTag($form);
não acho solução para isso, no caso não to nem querendo mexer com o banco de dados ainda, apenas mostrar o meu form na view.
>
No caso, não seria:
echo $this->formLabel($this->form->get('nm_clien'));?
bruno muito obrigado pela tentativa de ajuda, mas não foi isso :(, continua o mesmo erroe nem:
echo $this->formLabel($this->form()->get('nm_clien'));?
Não trabalho com Zend, mas olhando o seu código acho que faz sentido.
>
e nem:
echo $this->formLabel($this->form()->get('nm_clien'));?
Não trabalho com Zend, mas olhando o seu código acho que faz sentido.
agradesço pela ajuda, mas tambem não deu certo :S
pessoa consegui resolver, parcialmente, este erro estava acontecendo por que o controller ClientesController.php não estava setando para view Index.phtml, e ainda não achei como fazer isso, ai no caso chamei o fom na IndexController.php e coloquei na IndexAction, que por padrão ja seta automaticamente para view index, ai deu certo.
No caso, não seria:
echo $this->formLabel($this->form->get('nm_clien'));?