Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] admin generator i klucz złożony
blackroger
post 19.11.2010, 12:45:12
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 8.11.2008

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


witam! Mam tabelę Category i CategoryRelations. Tabela CategoryRelations posiada klucz złozony z parent_id i child_id które do odnoszą się do tabeli Category.
Wygenerowany formularz standardowo ustawił pola hidden na klucz główny

  1. sfWidgetFormInputHidden()


i dał validatory w postaci

  1. new sfValidatorChoice(array('choices' => array($this->getObject()->getCategoryId()), 'empty_value' => $this->getObject()->getCategoryId(), 'required' => false)),


widgety nadpisalem standardowym choicem

  1. $this->widgetSchema['parent_id'] = new sfWidgetFormPropelChoice(
  2. array('model' => 'category'));
  3.  


W formularzu pojawia się oczekiwany select ale jest problem przy zapisie bo jest wartość invalid.
Normalnie dałbym w walidatorze tablicę choices ale tu jest problem bo wartości te są jednocześnie złożonym kluczem głównym więc nie może być powtórzeń :/

Aha i jescze jedna sprawa:
Catchable fatal error: Object of class sfOutputEscaperArrayDecorator could not be converted to string in D:\Praca\projects\project1\cache\backend\dev\modules\autoCategoryRelations\templates\_list_td_batch_actions.php on line 2

to sie pojawia w momencie listowania wpisów, gdy w CategoryRelations jest co najmniej jeden wpis

Proszę o pomoc.

Ten post edytował blackroger 19.11.2010, 12:55:59
Go to the top of the page
+Quote Post
Mephistofeles
post 19.11.2010, 14:50:57
Post #2





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Co do tego drugiego, to musisz napisać __toString, widocznie nie masz domyślnie szukanych przez symfony pól w modelu.
Go to the top of the page
+Quote Post
blackroger
post 19.11.2010, 15:30:04
Post #3





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 8.11.2008

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


Mógłbyś objaśnić? Co to znaczy napisać __toString()? W modelu mam dodać czy gdzie?
Go to the top of the page
+Quote Post
Mephistofeles
post 19.11.2010, 15:37:53
Post #4





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Jobeeta czytałeś?
Tak wygląda standardowa funkcja z sfDoctrineRecord:
  1. 111 public function __toString()
  2. 112 {
  3. 113 $guesses = array('name',
  4. 114 'title',
  5. 115 'description',
  6. 116 'subject',
  7. 117 'keywords',
  8. 118 'id');
  9. 119
  10. 120 // we try to guess a column which would give a good description of the object
  11. 121 foreach ($guesses as $descriptionColumn)
  12. 122 {
  13. 123 try
  14. 124 {
  15. 125 return (string) $this->get($descriptionColumn);
  16. 126 } catch (Exception $e) {}
  17. 127 }
  18. 128
  19. 129 return sprintf('No description for object of class "%s"', $this->getTable()->getComponentName());
  20. 130 }

Jeśli nie masz takich pól to symfony nie przetworzy obiektu na tekst, więc musisz napisać w swoim modelu własną funkcję.
Go to the top of the page
+Quote Post
blackroger
post 19.11.2010, 16:23:38
Post #5





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 8.11.2008

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


dopisałem metodę ale dalej jest to samo....korzystam z propela ....Martwi mnie to bo inne klasy działają i wszystko jest dobrze....problem jest tylko w tej klasie CategoryRelations gdzie jest klucz złożony....
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: 1.05.2025 - 05:16