konto usunięte

Temat: Zend_Form nie widać formularza

Mam mały problem, stworzyłem w Zendzie formularz:

<?php class forms_ContactForm extends Zend_Form
{

public function __construct($options = null)
{
parent::__construct($options);
$this->setName('contact_us');

$title = new Zend_Form_Element_Select('title');
$title->setLabel('Title')
->setMultiOptions(array('mr'=>'Mr', 'mrs'=>'Mrs'))
->setRequired(true)->addValidator('NotEmpty', true);

$firstName = new Zend_Form_Element_Text('firstName');
$firstName->setLabel('First name')
->setRequired(true)
->addValidator('NotEmpty');

$lastName = new Zend_Form_Element_Text('lastName');
$lastName->setLabel('Last name')
->setRequired(true)
->addValidator('NotEmpty');

$email = new Zend_Form_Element_Text('email');
$email->setLabel('Email address')
->addFilter('StringToLower')
->setRequired(true)
->addValidator('NotEmpty', true)
->addValidator('EmailAddress');


$submit = new Zend_Form_Element_Submit('submit');
$submit->setLabel('Contact us');

$this->addElements(array($title, $firstName,
$lastName, $email, $submit));

}
}

I problem jest taki, że nie działa mi on, w kontrolerze mam taki kod:

$form = new forms_ContactForm();
$this->view->form = $form;

W widoku wiadomo echo $this->form; efekt jest taki, że nic nie widać.

Formularz mam wgrany w application/formsPaweł Cyrklaf edytował(a) ten post dnia 30.11.10 o godzinie 18:31
Dominik Marczuk

Dominik Marczuk Remote Team Lead w
Sonalake

Temat: Zend_Form nie widać formularza

Ciężko cokolwiek stwierdzić, więc strzelam: może masz coś nie tak w dekoratorach? Spróbuj je ustawić ręcznie, może to cos pomoże?

konto usunięte

Temat: Zend_Form nie widać formularza

Normalnie, już nie mam pomysłu, wcześniej wszystko mi chodziło, teraz nawet najprościejszy formularz się nie pokaże.

konto usunięte

Temat: Zend_Form nie widać formularza

Paweł Cyrklaf:
Normalnie, już nie mam pomysłu, wcześniej wszystko mi chodziło, teraz nawet najprościejszy formularz się nie pokaże.

"wcześniej" czyli jaka to była wersja ?
A obecnie z jakiej korzystasz ?

konto usunięte

Temat: Zend_Form nie widać formularza

Nie pamiętam, ale było to rok temu, ta co pobrałem ostatnio z ich strony to 1.11.0 minimal

konto usunięte

Temat: Zend_Form nie widać formularza

Paweł Cyrklaf:
Nie pamiętam, ale było to rok temu, ta co pobrałem ostatnio z ich strony to 1.11.0 minimal

no to zerknij do dokumentacji... przez ostatni rok ZF mocno się zmienił...

konto usunięte

Temat: Zend_Form nie widać formularza

Właśnie, sprawdziłem i mam taki kod:
Formularz application/forms/LoginForm.php

class Form_LoginForm extends Zend_Form
{
public function init()
{


$this->setName('login');
$username=new Zend_Form_Element_Text('username');
$username->setLabel('Username:')
->setRequired();

$password=new Zend_Form_Element_Password('password');
$password->setLabel('Password:')
->setRequired(TRUE);

$login=new Zend_Form_Element_Submit('login');
$login->setLabel('Login');

$this->addElements(array($username,$password,$login));
$this->setMethod('post');
$this->setAction('/autoryzacja/login');

}}


mam kontroller HomeController.php

<?php
class HomeController extends Zend_Controller_Action
{
function init()
{ }
function indexAction()
{ }
function formAction()
{
$form=new Form_LoginForm();
$this->view->form = $form;
}
}


A w application/views/scripts/home/form.phtml mam

echo $this->form;
I mimo to nadal nie ma formularz po wywołaniu home/form

konto usunięte

Temat: Zend_Form nie widać formularza

skasuj akcję init() - skoro jest pusta to jest Ci niepotrzebna...

a w Form_LoginForm masz to:

$this->addElements(array($elementy));

?

konto usunięte

Temat: Zend_Form nie widać formularza

W kodzie formularza który wkleiłem jest:

$this->addElements(array($username,$password,$login));


Ustawiłem w kontrolerze home, i akcji form $this->form->test="test";
i wywaliłem to:

$form=new Form_LoginForm();
$this->view->form = $form;
to wyświetla normalnie test, jak wstawie to, to jest biała stronaPaweł Cyrklaf edytował(a) ten post dnia 30.11.10 o godzinie 21:08

Temat: Zend_Form nie widać formularza

Twój formularz u mnie działa bez problemu(ten z pierwszego posta). Masz włączone wyświetlanie błędów w php? Może ścieżki źle podajesz i nie widzisz błędu?

konto usunięte

Temat: Zend_Form nie widać formularza

Tak :) Dziwne nawet jak wpisze nazwe kontrolera którego nie ma to jest biała strona. Może poda mi ktoś byle jaki kod formularza, kontrolera i widoku, wgram u siebie i zobaczę czy się uruchomi. O jakich scieżkach mówisz?Paweł Cyrklaf edytował(a) ten post dnia 30.11.10 o godzinie 23:03

Temat: Zend_Form nie widać formularza

Kod od innej osoby nic ci nie da jeżeli masz inną strukturę katalogów, co do ścieżek to chodzi mi o ścieżki do plików. Tworząc klasę forms_ContactForm mówisz ZF że plik znajduje się w katalogu forms i nazywa się ContactForm.php.
Paweł Cyrklaf:
Tak :) Dziwne nawet jak wpisze nazwe kontrolera którego nie ma to jest biała strona.
To znaczy, że masz wyłączoną obsługę błędów. Włącz ją.

konto usunięte

Temat: Zend_Form nie widać formularza

Gdzie ją włączyć? Na serwerze jest włączone raportowanie błędów, w zendzie w pliku index.php też jest, dodatkowo mam też:

$frontController->throwExceptions(true);

Mimo to nic nie pokazuje.

Temat: Zend_Form nie widać formularza

Ja je mam w pliku application.ini

[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

i w index.php

$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '../application/configs/application.ini'
);
Marceli Podstawski edytował(a) ten post dnia 01.12.10 o godzinie 09:52

konto usunięte

Temat: Zend_Form nie widać formularza

Marceli Podstawski:
Ja je mam w pliku application.ini

[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

Do tego proponowałbym włączyć wyświetlanie błędów w php.ini - kod który generuje błąd może być wykonany przed parsowaniem pliku application.ini przez Zend_Application. W taki przypadku komunikat o błędzie nie zostanie wyświetlony.

konto usunięte

Temat: Zend_Form nie widać formularza

Już są błędy, pisze mi:

Fatal error: Class 'Form_LoginForm' not found in C:\wamp\www\application\controllers\IndexController.php on line 19

Kod kontrolera:

<?php

class IndexController extends Zend_Controller_Action
{

public function init()
{
/* Initialize action controller here */
}

public function indexAction()
{
// action body
}
public function testAction()
{
$form=new Form_LoginForm();
$this->view->form=$form;
}

}




A plik LoginForm.php mam wgrany w application/form

Temat: Zend_Form nie widać formularza

Daj kod swojego index.php

konto usunięte

Temat: Zend_Form nie widać formularza


<?php

// Ensure library/ is on include_path
set_include_path('.'.PATH_SEPARATOR.'library/'.PATH_SEPARATOR.'application/controllers/'.PATH_SEPARATOR.'application/models'.PATH_SEPARATOR.get_include_path());

/** Zend_Application */
require_once 'Zend/Application.php';

//Zend Loader
include 'Zend/Loader.php';


//Wczytywanie klas
Zend_Loader::loadClass('Zend_Controller_Front');
Zend_Loader::loadClass('Zend_DB');
Zend_Loader::loadClass('Zend_DB_Table');
Zend_Loader::loadClass('Zend_Registry');
Zend_Loader::loadClass('Zend_Config_Ini');
Zend_Loader::loadClass('Zend_Layout');


Zend_Layout::startMvc('application/layouts',true);

$config=new Zend_Config_Ini('application/config.ini','general');
$registry=Zend_Registry::getInstance();
$registry->set('config',$config);

$db=Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
Zend_Db_Table::getDefaultAdapter($db);

$frontController=Zend_Controller_Front::getInstance();
$frontController->setControllerDirectory('application/controllers/');
$frontController->throwExceptions(true);

$frontController->dispatch();


Teraz mi wywala:
 Fatal error: Class 'Form_LoginForm' not found in C:\wamp\www\application\controllers\IndexController.php on line 19


Już mam 100% pewnośc, że w moim pliku, coś jest skopane, w tym index.php

Wszystko działa elegancko, do pewnego momentu, a dokładnie jak dodam to do index.php:

Zend_Loader::loadClass('Zend_Controller_Front');
$frontController = Zend_Controller_Front::getInstance();
$frontController->setControllerDirectory('./application/controllers');
$frontController->throwExceptions(true);
$frontController->dispatch();
Paweł Cyrklaf edytował(a) ten post dnia 02.12.10 o godzinie 00:10

Temat: Zend_Form nie widać formularza

Gdzie masz stwierdzone, że ZF ma szukać formularzy w katalogu forms. Na mój gust tu by się przydało zdefiniować taka ścieżkę:

// Ensure library/ is on include_path

set_include_path('.'.PATH_SEPARATOR.'library/'.PATH_SEPARATOR.'application/controllers/'.PATH_SEPARATOR.'application/models'.PATH_SEPARATOR.get_include_path());

Po umieszczeniu pliku LoginForm.php w katalogu forms utworzenie obiektu klasy LoginForm() powinno wyglądać następująco:

$form = new LoginForm();

Można to zrobić ładniej i w katalogu forms stworzyć katalog np. Auth i do niego wrzucić nasz plik z formularzem. Wtedy utworznie obiektu wyglądało by następująco:

$form = new Auth_LoginForm();

konto usunięte

Temat: Zend_Form nie widać formularza

Czyli do tego set__include_path co mam w index.php, mam dopisać ścieżkę do formularzy, tak?

Następna dyskusja:

Zend_Form setIgnore(true) n...




Wyślij zaproszenie do