Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
public function addmenuAction() { //FORMULAIRE } public function deleteenuAction() { //FORMULAIRE }
Hors ligne
tu à une petite erreur dans deleteenuAction => deletemenuAction
pour ton add menu,
créée une vue basique:
use Zend\View\Model\ViewModel; ... public function addmenuAction() { $view = new ViewModel(); return $view; }
normalement ta vue
view/admin/admin/addmenu.phtml
devrait s'afficher
Hors ligne
re,
Alors le je ne coprends pas du tout :
Si je met dans le controller :
public function addmenuAction() { $viewModelForm = new ViewModel(); return $viewModelForm; }
Il passe bien dans le .phtml mais :
Et par contre si je met :
public function addmenuAction() { $form = new MenuForm(); $inputFilter = new MenuFormInputFilter(); $formTemplate = 'admin/admin/menus'; $formType = \DluTwBootstrap\Form\FormUtil::FORM_TYPE_HORIZONTAL; $form->setInputFilter($inputFilter); $request = $this->getRequest(); if ($request->isPost()) { $menu = new Menus(); $form->setData($request->getPost()); if ($form->isValid()) { $valuePost = $form->getData(); $ordreGet = $this->getMenusTable()->getLastOrdre(); $valuePost['ordre'] = (int)$ordreGet->ordre + 1; $menu->exchangeArray($valuePost); $this->getMenusTable()->saveOneMenu($menu); // Redirect to list of albums //return $this->redirect()->toRoute('/admin/menus'); return $this->redirect()->toRoute('admin', array( 'action' => 'menus' )); } } $validData = null; $viewModelForm = new ViewModel(); $viewModelForm->setVariables(array( 'form' => $form, 'formType' => $formType, 'validData' => $validData, )); $viewModelForm->setTemplate($formTemplate); return $viewModelForm; }
cela me retourne vers menus.....
Hors ligne
Je suis bête .....
Il fallait que je change : $formTemplate = 'admin/admin/menus';
en $formTemplate = 'admin/admin/addmenu';
Désolé....
Hors ligne
$formTemplate = 'admin/admin/menus';
Donc normal.
Hors ligne
$formTemplate = 'admin/admin/menus'; ... $viewModelForm->setTemplate($formTemplate);
Tu aurais du commencer par là ^^
enfait tu applique un template à ta vue qui correspond à ton fichier de menus.
enlève ces deux lignes et tu ira directement à ta vue par défaut : lenomdetonaction.phtml
Hors ligne
flobrflo a écrit:
Code:
$formTemplate = 'admin/admin/menus'; ... $viewModelForm->setTemplate($formTemplate);Tu aurais du commencer par là ^^
enfait tu applique un template à ta vue qui correspond à ton fichier de menus.
enlève ces deux lignes et tu ira directement à ta vue par défaut : lenomdetonaction.phtml
oui en effet .....
Hors ligne
encore une question cette fois dans la vue avant j'avais :
$url = $this->url('admin', array( 'action' => 'delete', 'id' => $menu->id ) );
Je dois mettre maintenant :
$url = $this->url('admin/menus', array( 'action' => 'delete', 'id' => $menu->id ) );
?
C'est bien cela ? Pour suivre la logique ?
[EDIT] j'ai remplacer l'url par : $this->basePath() . "/admin/menus/delete/".$menu->id;
Cela marche mais est-ce comme cela qu'il faut faire ?
Dernière modification par Paul75 (06-03-2014 16:39:57)
Hors ligne
Non ... En fait dans les vue tu n'as pas besoin de préciser l'action elle est déjà indiquée dans la configuration du router. Donc tu as seulement à indiquer le nom de la route avec les paramètres de l'url dans ton cas id c'est tout.
Hors ligne
$url = $this->url('admin/menus/delete', array('id' => $menu->id));
normalement tu n'a plus de variable action
admin/menus/delete, c'est l'enchainement des noms de tes routes :
$url = $this->url('parent_route/child_route/child_child_rout', array('param1' => $value_1, 'param2' => $value_2));
Hors ligne
merci flobrflo !
Super gentil de ta part !
Hors ligne
re,
encore moi oui je sais ...
Mais la j'ai compris le système de toutage.
Par contre si je veux rerouter vers une page qui cotient des tab et gene je veux router vers admin/pages#presentation ?
Je fais comment ?
Par du javascript ????
Hors ligne
je comprend pas très bien la question dsl ^^
tu veux charger ta page directement avec l'ancre?
Hors ligne
en fait quand j'ai fini de créer un article je voudrais retourner a la page page mais à l'onglet présentation par exemple ....
Hors ligne
eh bien...
Si j'ai bien compris je peu te renvoyer vers cet article :
http://www.z-f.fr/forum/viewtopic.php?id=472
pour te résumer, il va falloir que tu passe par du js.
ça peu se traduire par le simple ajout d'un script que tu pourrait lancer dans un document.ready ^^
Hors ligne
Oui c'est bien ce que je pensais alors.......
Je doit donc faire du JS Merci.
Hors ligne
Plop, t'es pas obligé de passer par du JS (enfin pour gérer l'ancre si forcément, le twitter bootstrap doit le gérer déjà de base pour les onglets) par contre la redirection tu peux la faire avec l'ancre. Regardes dans la doc ou le code du plugin redirect ou de l'aide de vue url tu as un 3 eme paramètre qui permet ça
Hors ligne