Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] formularze w 1.1
zimi
post
Post #1





Grupa: Zarejestrowani
Postów: 233
Pomógł: 9
Dołączył: 3.06.2007

Ostrzeżenie: (0%)
-----


pojawił się u mnie problem z metodami formularza updateObject i isValid, czego za bardzo nie rozumiem, może powiem jak do tego doszło:
na początku stworzyłem moduł "test" jakiejś aplikacji i projektu
zrobiłem niezbyt skomplikowaną schemę:
Kod
propel:
  test:
    id:
    text: varchar(20)

z linii poleceń poszło:
Kod
symfony propel:build-all
symfony propel:build-forms

wrzuciłem do bazy jeden wiersz przez phpmyadmin w polu text miał "asdf"
do tego tak wygląda actions.class.php w module:
  1. <?php
  2. class testActions extends sfActions
  3. {
  4. /**
  5.   * Executes index action
  6.   *
  7.   * @param sfRequest $request A request object
  8.   */
  9.  public function executeIndex($request)
  10.  {
  11.    $a = TestPeer::retrieveByPK(1);
  12.    $this->form = new TestForm($a);
  13.    if($request->isMethod('post'))
  14.    {
  15.      $this->form->updateObject();
  16.    }
  17.  }
  18.  
  19. }
  20. ?>

a w szablonie jest najprostsze wyświetlenie formularza wzięte żywcem z manuala...
Kod
<form action="<?php echo url_for('test/index') ?>" method="post">
  <table>
    <?php echo $form ?>
    <tr>
      <td colspan="2">
        <input type="submit" />
      </td>
    </tr>
  </table>
</form>

okazuję się że po otworzeniu strony /frontend_dev.php/test i przyciśnięciu przycisku Wyślij otrzymujemy błąd
o nijakiej treści "[sfValidatorErrorSchema]" oprócz tego symfony nie wypluło nic wiecej prócz ścieżek
nie bardzo wiem na czym polega błąd

ciekawa rzecz również ujawnia się gdy zamiast całego if-a wstawimy var_dump($this->form->isValid());
okazuję się że na ekranie dostajemy false... mimo że wpis jest całkiem poprawny więc formularz stworzony na podstawie wpisu też powinien

czy ktoś jest mi w stanie wytłumaczyć na czym polega problem?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


bind() => isBound
Formularz nie może być poprawny skoro nie ma żadnych danych.
Piszesz dziwne, wszystko razem i ciężko Cię zrozumieć.

Coś tam pisałeś, pewnie chodzi Ci o metodę:
  1. <?php
  2. $this->widgetSchema->setNameFormat('article[%s]');
  3. ?>

No właśnie, ta informacja jest tylko dla widżetów, aby one same mogły ustalić wartość parametru name dla swojego pola. Ty chciałbyś, aby formularz sam sobie pobierał z requestu te dane. To jest nie możliwe, ponieważ założeniem tego sub-framework'a jest możliwość całkowitego oddzielenia od reszty.
Żądanie może przyjść np. przez xml-rpc więc skąd formularz ma wiedzieć jak odebrać dane?

Uważam, że nie ma sensu dalej nad tym dyskutować. Jeśli uważasz, że developerzy źle zrobili, dopisz sobie swoją klasę formularzam, która będzie sama sobie te dane pobierała.

Ten post edytował destroyerr 4.10.2008, 18:52:12
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 21:48