Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [symfony]1.4 Doctrine - relacja 1:m
arturo23
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 13.02.2012

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


Witam,

są sobie dwie tabele np.: Artykuły i Kategorie w relacji 1:m czyli kategoria ma wiele artykułów a artykuł ma jedna kategorie. Kiedy utworze CRUD w symfony wszystko działa jak powinno czyli kiedy chce dodać artykuł mam na rozwijanej liście kategorie.

Ale kiedy dodaje kategorie mam tylko możliwość dodania nazwy kategorii, a chciałbym żeby można było od razu przypisac nowo dodawana kategorie do istniejących artykułów. Podobnie z edycja - chce poza możliwością edycji nazwy kategorii wyedytowac przypisanie do artykułów...

Jak się za to zabrać...?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
arturo23
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 13.02.2012

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


Po godzinach googlowania doszedlem do tego:
Jak dodaje Artykul mam:
(IMG:http://fx1.pl/z1.png)
... to jest CRUD bez zmian i jest OK.

Teraz kiedy dodaje Kategorie:
Na razie doszedlem do tego...
(IMG:http://fx1.pl/z2.png)
I generalnie oto chodzi ale...

Jak zapisac teraz te dane ?
Rozumiem, ze mam nadpisac metode save() a w niej usunac przypisane do kategorii artykuly a pozniej w petli dodac spowrotem te zaznaczone ?
Pytanie jak i gdzie ?

Drugie pytanie to wydaje mi sie, ze malo elegancko dodalem te artykuly bo zrobilem tak:
  1. class CategoryForm extends BaseCategoryForm
  2. {
  3. public function configure()
  4. {
  5. $this->widgetSchema['article_list'] = new sfWidgetFormDoctrineChoice(array(
  6. 'model' => 'Article',
  7. 'multiple' => true,
  8. 'expanded' => true
  9. ));
  10.  
  11. $q = Doctrine_Query::create()->select('a.id')->from('Article a')->where('a.category_id = ?', $this->getObject()->getId());
  12. $ret = $q->fetchArray();
  13. $z = null;
  14. foreach ($ret as $r) {
  15. $z[] = $r['id'];
  16. }
  17. $this->setDefault('article_list',$z);
  18.  
  19. $this->validatorSchema->setOption('allow_extra_fields', true); // na razie bez walidacji...
  20. }
  21. }

co prawda dziala ale pisane to troche na wyczucie i po omacku - a zalezy mi aby zrobic to "zgodnie ze sztuka"... wiec jesli by ktos na to spojrzal i ewentualnie poprawil lub wskazal droge...


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 - 13:17