Wpis z mikrobloga

Mireczki Kochane i programiści php ( ͡° ʖ̯ ͡°)
Tworzę w Sonata Admin klasę Formularza , ma ona na Celu dodawanie nowej kategorii do tabeli categories w układzie
(categoryid ,name,alias,parentid)
No i Dodałem główną kategorie , która nie ma parenta czyli jest początkiem drzewa.
Teraz zaczynają się schody, jak mam pobrać teraz id kategorii z bazy danych abym mógł zrobić selecta do wyboru rodzica , tzn czy kategoria ma być jakimś dzieckiem w drzewie czy ma być główną kategorią
$formMapper
->add ('name', 'text', array('label' => 'Nazwa Kategorii'))
->add ('alias', 'text', array('label' => 'Alias'))
->add ('parent_id', 'choice', array('choices' => "??"' ));


Są 2 opcje z tego co czytałem ,
-stworzenie serwisu , który będzie mógł dodać dane z tych kategorii , z tego co dobrze przeczytałem na stacku to chodzi o to klik
- albo opcja nr 2 czyli mapowanie Encji w Doctrinie
klik

Która opcja jest łatwiejsza albo z której mam skorzystać ?
#symfony2 #php #programowanie
  • 22
@NiktNieTroszczy: No to jeszcze raz:
Mam klasę Category extendującą Admina , tworzącą Formularz do wprowadzania Kategorii do drzewa
http://pastebin.com/gb5HLgUh
Settery I Gettery z Encji Category
http://pastebin.com/tNThpWTP
Chcę mieć w tworzonym formularzu selectboxa , który będzie miał w sobie dane z bazy danych gromadzące wszystkie kategorie w klasie category tak abym wprowadzając nową kategorię mógł zdefiniować czy kategoria ma mieć rodzica jako moja kategoria główna(id=1) czy ma być dzieckiem innej kategorii np
@wojjaskula: stackoverflow twoim przyjacielem

$em = $this->modelManager->getEntityManager('MyBundle\Entity\Category');

$query = $em->createQueryBuilder('c')
->select('c')
->from('MyBundle:Category', 'c')
->where('c.parent IS NOT NULL')
->orderBy('c.root, c.lft', 'ASC');

$formMapper
...
->add('categoria', 'sonata_type_model', array(
'required' => true,
'query' => $query
))
...
;
@NiktNieTroszczy: Tylko powstaje mały problem , ja mam coś specjalnego do konstruktora wrzucić ?
Bo próbując coś takiego

public function __construct(EntityManager $modelManager)
{
parent::__construct()
$this->modelManager = $modelManager;
}

raczej na 99,9% rzuci błędem , że w parencie brakuje kodu/zmiennych
Przepraszam , że tak truje ale jakoś sobie z tym etapem nie mogę poradzić
@NiktNieTroszczy: Jeszcze jedna sprawa, załóżmy że już mam pobrane z bazy danych całe encje z kategorii.
jest jakaś magiczna metoda żeby do listy wyboru dodać tylko nazwę a jako value nadać id kategorii czy muszę foreachować i pobierać wartości dla każdej zmiennej ?