W jaki sposob wykozystujac mechanizm nested tree dodac/zmienic pozycje w tabeli? Mecze sie juz z tym pare godzin i nic nie wychodzi:(. Mam formularz do edycji kategori - 2 pola: nazwa kategori oraz pole select ze wszystkimi kategoriami i jak dodaje nowa kategorie to chce ja umiescic w istniejacej juz kategori i nie chce mi to dzialac. Formularze wygenerowalem z cli. Obecnie klasa akacji wyglada tak:
<?php class categoriesActions extends sfActions { public function executeIndex(sfWebRequest $request) { $this->jmdata_categories_list = JmdataCategoriesPeer::doSelect(new Criteria()); } public function executeNew(sfWebRequest $request) { $this->form = new JmdataCategoriesForm(); } public function executeCreate(sfWebRequest $request) { $this->forward404Unless($request->isMethod('post')); $this->form = new CategoriesForm(); $this->processForm($request, $this->form); $this->setTemplate('new'); } public function executeEdit(sfWebRequest $request) { $this->forward404Unless($jmdata_categories = CategoriesPeer::retrieveByPk($request->getParameter('id')), sprintf('Object jmdata_categories does not exist (%s).', $request->getParameter('id'))); $this->form = new CategoriesForm($jmdata_categories); } public function executeUpdate(sfWebRequest $request) { $this->forward404Unless($request->isMethod('post') || $request->isMethod('put')); $this->forward404Unless($jmdata_categories = CategoriesPeer::retrieveByPk($request->getParameter('id')), sprintf('Object jmdata_categories does not exist (%s).', $request->getParameter('id'))); $this->form = new CategoriesForm($jmdata_categories); $this->processForm($request, $this->form); $this->setTemplate('edit'); } public function executeDelete(sfWebRequest $request) { ... } protected function processForm(sfWebRequest $request, sfForm $form) { $form->bind($request->getParameter($form->getName())); if ($form->isValid()) { $obj=$form->getObject(); if ($request->getParameter('categories') != 0) { $parent_obj=CategoriesPeer::retrieveByPK($request->getParameter('categories')); $root = CategoriesPeer::getNode($parent_obj); $new=new CategoriesPeer(); $new->insertAsLastChildOf($root); } $jmdata_categories=$form->bindAndSave($values); $this->redirect('categories/edit?id='.$jmdata_categories->getId()); } else { } } } ?>
Rzecz wedlug mnie rozchodzi sie o metode processForm. Parametr 'categories' jest id wybranej kategori ktora ma sie stac rodzicem dla nowo zapisywanej. Nie wiem jak jak to zrobic. Probowalem zrobic to tak jak w tym poscie http://forum.symfony-project.org/index.php/m/65089/ ale niestety nie dziala. Prosze o pomoc.