Создал в каталоге models файл, допустим, Data.php
в нем насоздавал функций и потом в контроллере вызываешь вот так:
$model = new Application_Model_Data();
$model -> name_function();
А с формами так не прокатило
![sad.gif](http://phpforum.su/html/emoticons/sad.gif)
$model = new Application_Form_Table();
$form = $model -> name_function();
$this -> view -> form = $form;
var_dump'ом проверил и выводит NULL
Спустя 11 часов, 23 минуты, 47 секунд (21.06.2012 - 09:57) vagrand написал(а):
Цитата |
$form = $model -> name_function(); |
А это зачем?
Пиши так:
Цитата |
$form = new Application_Form_Table(); $this -> view -> form = $form; |
Спустя 39 минут, 6 секунд (21.06.2012 - 10:36) bayanruby написал(а):
Цитата |
$form = new Application_Form_Table(); $this -> view -> form = $form; |
таким способом возьмётся форма которая находится в
public function init()
{
....
}
а я чуть ниже ещё вот что сделал:
public function myFunction()
{
....
}
потом в контроллере вот так пытаюсь вызвать:
$model = new Application_Form_Table();
$form = $model -> myFunction();
$this -> view -> form = $form;
Но ничего не выводит
![sad.gif](http://phpforum.su/html/emoticons/sad.gif)
var_damp($form);
NULL выводит, получается моя функция не вызвалась
![sad.gif](http://phpforum.su/html/emoticons/sad.gif)
Или только в init() можно писать формы?
Спустя 29 минут, 2 секунды (21.06.2012 - 11:05) vagrand написал(а):
Может для начала покажете полный код функции myFunction() ?
Спустя 15 минут, 48 секунд (21.06.2012 - 11:21) bayanruby написал(а):
В forms создаю файл, допустим, Login.php и в нем пишем вот это:
Потом в контроллере вызываем эту форму вот так:
Ну и конечно потом формы в вьюсе выведу...
мне иногда надо вызвать форму которая имеет одно поле, 4 поля, много полей....
И чтобы не созавать в forms много файлов я хочу создать один файл и в нем написать разные методы, в методах будут нужные мне формы.
<?php
class Application_Form_Login extends Zend_Form
{
public function init()
{
$user = new Zend_Form_Element_Text('user',array(
'label' => 'User'));
$password = new Zend_Form_Element_Text('password',array(
'label' => 'Password'));
$submit = new Zend_Form_Element_Submit('submit',array('label'=>'Add'));
$this->addElements(array($user,$password,$submit));
}
//вот мой метод
public function myMetod()
{
$user2 = new Zend_Form_Element_Text('user2',array(
'label' => 'User2'));
$submit = new Zend_Form_Element_Submit('submit',array('label'=>'Add'));
$this->addElements(array($user2,$submit));
}
}
Потом в контроллере вызываем эту форму вот так:
<?php
class AdminController extends Zend_Controller_Action
{
public function indexAction()
{
//создаём форму(создаст то, что находится в init)
$form = new Application_Form_Login();
$this->view->form = $form;
//а таким образом хочу создать форму которая находится в моём методе, не то что в init()
$form = new Application_Form_Login();
$myForm = $form -> myMetod();
$this->view->form2 = $myForm;
}
}
Ну и конечно потом формы в вьюсе выведу...
мне иногда надо вызвать форму которая имеет одно поле, 4 поля, много полей....
И чтобы не созавать в forms много файлов я хочу создать один файл и в нем написать разные методы, в методах будут нужные мне формы.
Спустя 49 минут, 22 секунды (21.06.2012 - 12:10) vagrand написал(а):
<?php
class Application_Form_Login extends Zend_Form
{
public function init()
{
// ничего не делаем
}
public function loginElements()
{
$user = new Zend_Form_Element_Text('user',array(
'label' => 'User'));
$password = new Zend_Form_Element_Text('password',array(
'label' => 'Password'));
$submit = new Zend_Form_Element_Submit('submit',array('label'=>'Add'));
$this->addElements(array($user,$password,$submit));
}
//вот мой метод
public function otherElements()
{
$user2 = new Zend_Form_Element_Text('user2',array(
'label' => 'User2'));
$submit = new Zend_Form_Element_Submit('submit',array('label'=>'Add'));
$this->addElements(array($user2,$submit));
}
}
class AdminController extends Zend_Controller_Action
{
public function indexAction()
{
$form = new Application_Form_Login();
$form->LoginElements();
$this->view->form = $form;
//а таким образом хочу создать форму которая находится в моём методе, не то что в init()
$form = new Application_Form_Login();
$form->otherElements();
$this->view->form2 = $form;
}
}
Спустя 1 час, 14 минут, 38 секунд (21.06.2012 - 13:25) bayanruby написал(а):
Ой как красава, всё работает ![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Дзякуй вялики, vagrand! ))
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Дзякуй вялики, vagrand! ))