Bonjour je suis confronté à un problème sur ZF2, et je n'arrive pas à le résoudre.
Il ne trouve pas ma classe CatalogueTable alors que si je saccage un peu le code dedans, il me génère des erreurs.
voici mon Module.php
le chargement des classes perso via ClassMapAutoloader
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 namespace Ajax; use Zend\Mvc\ModuleRouteListener; use Zend\Mvc\MvcEvent; use Ajax\Model\Catalogue; use Ajax\Model\CatalogueTable; use Zend\Db\ResultSet\ResultSet; use Zend\Db\TableGateway\TableGateway; class Module { public function getConfig() { return include __DIR__ . '/config/module.config.php'; } public function getAutoloaderConfig() { return array( 'Zend\Loader\ClassMapAutoloader' => array( __DIR__ . '/autoload_classmap.php', ), 'Zend\Loader\StandardAutoloader' => array( 'namespaces' => array( __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, ), ), ); } public function getServiceConfig() { return array( 'factories' => array( 'Ajax\Model\CatalogueTable' => function($sm) { $tableGateway = $sm->get('CatalogueTableGateway'); $table = new CatalogueTable($tableGateway); return $table; }, 'CatalogueTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new Catalogue()); return new TableGateway('catalogue', $dbAdapter, null, $resultSetPrototype); }, ), ); } }
Le début de la classe CatalogueTable elle-meme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 return [ 'Zend\Loader\ClassMapAutoloader' => [ [ 'Ajax\Model\CatalogueTable' => __DIR__ . "/Model/CatalogueTable.php", ] ], ];
et le controller
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 namespace Ajax\Model; use Zend\Db\TableGateway\TableGateway; class CatalogueTable extends AbstractTableGateway { protected $tableGateway; protected $table;
Sachant que je fais cela dans le cadre d'une requete ajax, et que l'erreur est générée lors de la response.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 namespace Ajax\Controller; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\JsonModel; //use Zend\View\Renderer\PhpRenderer; use Ajax\Model\Catalogue; use Ajax\Model\CatalogueTable; use Zend\Db\Adapter\AdapterInterface; use Zend\Db\Adapter\Adapter; class IndexController extends AbstractActionController { protected $catalogueTable; protected $dbAdapter; public function getCatalogueTable() { if (!$this->catalogueTable) { $sm = $this->getServiceLocator(); //print_r($sm); $this->catalogueTable = $sm->get('Ajax\Model\CatalogueTable'); } return $this->catalogueTable; } public function indexAction() { return new ViewModel(); } public function searchAnalyseAction() { $request = $this->getRequest(); if ($request->isXmlHttpRequest()) { // If it's ajax call $id = $request->getPost('id'); } // print('gddgdfsgdg');die; $result = $this->getCatalogueTable()->getAnalyseByLocalisation($id); //print_r($result); $var = array('test' => '2', 'gg' => 'fgdg', 'dgfgdsgdg' => $id); $json = new JsonModel($var); return $json; //return new JsonModel($formData); //return $this->getResponse(); } }
pourriez vous m'aider s'il vous plait ?
Merci d'avance.
Cordialement,
Partager