Bonjour à tous,
Dans le cadre du travail, je travail actuellement sur ZF2. J'ai suivis votre tuto (qui est par ailleurs très bien rédigé) mais j'obtiens une erreur lorsque je crée mes models de base de donnée.
Php m'indique que la classe User est introuvable...
PHP Fatal error: Class 'Zend\\Db\\ResultSet\\Row' not found in /UNXDEVCKT01/www/firewall/ZendFramework/module/Firewall/src/Firewall/Model/User.php on line 7, referer: https://firewall-dev.fr.local/Service/list
/module/Firewall/Module.php
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
| <?php
namespace Firewall;
use Zend\Mvc\ModuleRouteListener;
use Zend\Mvc\MvcEvent;
use Firewall\Model\UserTable;
//use Zend\Db\ResultSet\ResultSet;
//use Zend\Db\TableGateway\TableGateway;
class Module
{
public function onBootstrap(MvcEvent $e)
{
$eventManager = $e->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager);
}
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
public function getServiceConfig()
{
return array(
'factories' => array(
'user-table' => function($sm) {
$dbAdapter = $sm->get('db-adapter');
$table = new UserTable($dbAdapter);
return $table;
},
),
);
}
} |
/module/Application/Module.php
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
| <?php
namespace Application;
use Zend\Mvc\ModuleRouteListener;
use Zend\Mvc\MvcEvent;
use Zend\Db\Adapter\Adapter as DbAdapter;
class Module
{
public function onBootstrap(MvcEvent $e)
{
$eventManager = $e->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager);
}
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
public function getServiceConfig()
{
return array(
'factories' => array(
'db-adapter' => function($sm) {
$config = $sm->get('config');
$config = $config['db'];
$dbAdapter = new DbAdapter($config);
return $dbAdapter;
},
),
);
}
} |
/module/Firewall/src/Firewall/Model/User.php
1 2 3 4 5
| namespace Firewall\Model;
use Zend\Db\ResultSet\Row;
class User extends Row
{} |
/module/Firewall/src/Firewall/Model/UserTable.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <?php
namespace Firewall\Model;
use Zend\Db\TableGateway\AbstractTableGateway;
use Zend\Db\Adapter\Adapter;
use Zend\Db\ResultSet\ResultSet;
class UserTable extends AbstractTableGateway
{
protected $table ='t_user';
protected $tableName ='t_user';
public function __construct(Adapter $adapter)
{
$this->adapter = $adapter;
$this->resultSetPrototype = new ResultSet(new User);
$this->initialize();
}
// Autres methodes....
} |
/module/Firewall/src/Firewall/Controller/ServiceController.php
1 2 3 4 5 6 7 8
| public function addAction()
{
if (!$this->userTable) {
$sm = $this->getServiceLocator();
$this->userTable = $sm->get('user-table');
}
return $this->userTable;
} |
Je vous remercie beaucoup pour votre aide... Ca fait 2 jours que je cherche à comprendre mais rien à faire... J'arrive à executer des requete directement par l'adapter mais impossible comme votre tuto...
Cordialement,
Partager