[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как создать новую функцию форме дополнительно к in
bayanruby
В моделсе всё получается.
Создал в каталоге models файл, допустим, Data.php
в нем насоздавал функций и потом в контроллере вызываешь вот так:

$model = new Application_Model_Data();
$model -> name_function();

А с формами так не прокатило sad.gif только init() работает, а другие функции Зенд игнорит..
$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
var_damp($form);
NULL выводит, получается моя функция не вызвалась sad.gif

Или только в init() можно писать формы?

Спустя 29 минут, 2 секунды (21.06.2012 - 11:05) vagrand написал(а):
Может для начала покажете полный код функции myFunction() ?

Спустя 15 минут, 48 секунд (21.06.2012 - 11:21) bayanruby написал(а):
В forms создаю файл, допустим, Login.php и в нем пишем вот это:

<?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
Дзякуй вялики, vagrand! ))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.