Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [symfony] odnośnik w formularzu do innej tabeli
misiaczekmarek
post 25.06.2007, 11:29:22
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.06.2007

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


witam,

poczytałem na forum, przeczytałem "mój pierwszy projekt", poanalizowałem sf_sandbox i nie mogę sobie dać rady z następującym problemem:

plik schema.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <database defaultIdMethod="native" name="propel">
  3.  
  4.  <table name="sl_skrzynki_szafy_stelaze" phpName="Sl_Szafki">
  5.    <column name="typ" type="VARCHAR" size="40" required="true"/>
  6.    <column name="opis" type="VARCHAR" size="100"/>
  7.    <column name="id_skrzynki_szafy_stelaze" type="INTEGER" size="11" primaryKey="true" autoIncrement="true"/>
  8.  </table>
  9.  
  10.  <table name="infra_szafki" phpName="Infra_Szafki">
  11.    <column name="nr" type="VARCHAR" size="45" required="true"/>
  12.    <column name="id_typ" type="INTEGER" size="5" required="true"/>
  13.    <foreign-key foreignTable="sl_skrzynki_szafy_stelaze" name="Rel_Typ" onDelete="restrict">
  14.      <reference local="id_typ" foreign="id_skrzynki_szafy_stelaze"/>
  15.    </foreign-key>
  16.    <column name="id" type="INTEGER" size="11" required="true" primaryKey="true" autoIncrement="true"/>
  17.  
  18.  </table>
  19.  
  20. </database>


w pliku editSuccess.php z katalogu www\sf_sandbox\apps\frontend\modules\infra_szafki\templates

zmieniłem podobnie jak w tutorialu na:

  1. <?php if ($sf_params->has('id_typ')): ?>
  2. <?php echo input_hidden_tag('id_typ',$sf_params->get('id_typ')) ?>
  3. <?php else: ?>
  4. <tr>
  5. <th>Typ*:</th>
  6. <td><?php echo object_select_tag($infra_szafki, 'getIdTyp', array('related_class' => 'Sl_Szafki')) ?></td>
  7. </tr>
  8. <?php endif; ?>


i zamiast sad.gif spodziwanego efektu, że w formularzu lista wyboru będzie pokazywała pokazywała zawartość:

- pola typ a zapamiętywała zawartość id_skrzynki_szafy_stelaze w polu id_typ

to pokazuje zawartość:

- pola id_skrzynki_szafy_stelaze i zapamiętuje zawartość id_skrzynki_szafy_stelaze w polu id_typ

czyli pobiera dane z innej tablicy.

Podobny efekt otrzymałem stosując zalecenia z tutoriala podczas testowania oryginalnego projektu.

Tak na zdrowy rozum to nie widzę nigdzie skąd symfony ma wiedzieć o tym jakie pola ja chciałbym wyświetlić.

Oczywiście czyściłem cache (także ręcznie)

Jakieś sugestie?

pozdrawiam


--------------------
pozdrawiam
Go to the top of the page
+Quote Post
pawel_k
post 25.06.2007, 11:59:24
Post #2





Grupa: Zarejestrowani
Postów: 211
Pomógł: 3
Dołączył: 29.07.2005
Skąd: Szczebrzeszyn

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


powiem szczerze że tak zakręciłeś wytłumaczenie problemu że nie wiem o co chodzi winksmiley.jpg
Go to the top of the page
+Quote Post
defrag
post 25.06.2007, 12:53:20
Post #3





Grupa: Zarejestrowani
Postów: 82
Pomógł: 3
Dołączył: 15.01.2007

Ostrzeżenie: (10%)
X----


Chyba wiem o co Ci chodzi.

w modelu ibs/models/ twoj model musisz dopisac funckje

  1. <?php
  2. public function __toString() {
  3. return $this->getOpis();
  4. }
  5. ?>
Go to the top of the page
+Quote Post
misiaczekmarek
post 25.06.2007, 15:09:44
Post #4





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.06.2007

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


@pawel_k

sorki smile.gif, spróbuję prosto:

mam dwie tabele t1 i t2.

w tabeli t1 ma pola id i id_klubu
w tabeli t2 mam pola id_klubu i nazwa_klubu

w formularzu wprowadzania danych do t1 chcę mieć kontrolkę listy wyboru (combo, dropdown list)
która pobierze dane z t2 z pola id_klubu i wstawi do t1 id_klubu ale w formularzu wyświetli nazwa klubu.

czyli w html powinno być tak:

  1. <option value="1">Lechia :)</option>
  2. <option value="2">Arka</option>

.....

a mam tak:

  1. <option value="1">1</option>
  2. <option value="2">2</option>


mam nadzieję, że lepiej wytłumaczyłem


pozdrawiam


--------------------
pozdrawiam
Go to the top of the page
+Quote Post
pawel_k
post 25.06.2007, 15:14:41
Post #5





Grupa: Zarejestrowani
Postów: 211
Pomógł: 3
Dołączył: 29.07.2005
Skąd: Szczebrzeszyn

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


może to pomoże winksmiley.jpg
http://www.symfony-project.com/book/trunk/...%20Key%20Column

Ten post edytował pawel_k 25.06.2007, 15:15:01
Go to the top of the page
+Quote Post
misiaczekmarek
post 25.06.2007, 15:24:08
Post #6





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.06.2007

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


@defrag

dzięki za podpowiedź, to jest to.
poniżej opiszę co zmieniłem i gdzie, może komuś się przyda:

moja instalacja symfony jest na winxp i wamp-ie.

w katalogu x:\wamp\www\sf_sandbox\lib\model w pliku Sl_Szafki.php dodałem co nieco i wygląda on teraz tak (zgidnie z twoją sugestią):

  1. <?php
  2.  
  3. require_once 'model/om/BaseSl_Szafki.php';
  4.  
  5. /**
  6.  * Subclass for representing a row from the 'sl_skrzynki_szafy_stelaze' table.
  7.  *
  8.  * 
  9.  *
  10.  * @package lib.model
  11.  */ 
  12. class Sl_Szafki extends BaseSl_Szafki
  13. {
  14.  
  15. public function __toString() {
  16. return $this->getOpis();
  17. }
  18.  
  19. } //Sl_Szafki
  20. ?>



@pawel_k

byłem tam wczoraj i jak dzisiaj defrag mi podpowiedział to dopiero powiązałem jedno z drugim i eureka. dzięki
pozdrawiam

Ten post edytował misiaczekmarek 25.06.2007, 15:40:51


--------------------
pozdrawiam
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 07:41