Bonjour,
Je n'arrive pas à faire fonctionner le plugin sfWidgetFormDoctrineJQueryUISortable.
Dès que je déplace un élément, j'ai une alerte javascript qui affiche :
Je pense que l'erreur vient de la requête dans l'action du plugin, il doit y avoir un problème dans mon schéma.
Code : Sélectionner tout - Visualiser dans une fenêtre à part theres an error with AJAX
shema.yml
TypeCarteForm.class.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 TypeCarte: columns: id: type: integer(11) primary: true autoincrement: true name: type: string(100) notnull: true unique: true visuel: type: string(100) ordre: type: integer(11)
J'ai pensé à créer une table TypeCarteOrdre car dans l'action du plugin on peut voir qu'il y a une liaison entre la table du modèle et un modèle parent que je ne pense pas avoir mais ca ne passe pas non plus, la même erreur s'affiche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $this->widgetSchema['ordre'] = new sfWidgetFormDoctrineJQueryUISortable(array( 'model' => 'TypeCarte', 'parent_object' => $this->getObject(), 'method' => 'getTypeCarteMini', // Retourne le visuel du type de carte 'key_method' => 'getPrimaryKey', 'parent_key_method' => 'getPrimaryKey', // 'order_by' => 'ordre', 'query' => null, 'table_method' => null, 'grid' => true, 'rank_field' => 'ordre' ));
/plugins/sfWidgetFormDoctrineJQueryUISortable/modules/sfDoctrineJQueryUISortable/actions/actions.class.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 class sfDoctrineJQueryUISortableActions extends sfActions { public function executeSaveOrder(sfWebRequest $request) { $model = $request->getParameter('model'); $order = 'sfDoctrineJQueryUISortable' . $model; $parentModel = $request->getParameter('parent_model'); $parentId = $request->getParameter('parent_id'); if (empty($model) || empty($order) || empty($parentModel) || empty($parentId) || !is_array($request->getParameter($order))) { return sfView::NONE; } foreach ($request->getParameter($order) as $rank => $objectId) { $query = Doctrine_Query::create() ->from($model . ' m') ->innerJoin('m.' . $parentModel . ' p') ->where('m.id=? AND p.id=?', array($objectId, $parentId)); $object = $query->fetchOne(); if ($object instanceOf $model) { $object->setRank($rank); $object->save(); } } return sfView::HEADER_ONLY; } }
Merci pour votre aide![]()
Partager