2014-11-17 4 views
0

Я использую ZF2 для создания новых приложений. У нас есть проблема с подключением db под контроллером и файлом модели.Проблема с подключением базы данных Zend Framework 2

Мы поместили все учетные данные базы данных в «global.php» и «db.local.php», а также получили доступ к адаптеру db в нашем файле «Module.php», но мы не получили подключения к базе данных в файлах контроллеров и моделей и не запускать запрос под контроллером и моделью.

Вот мой код:

**global.php :** 

return array(
    'db' => array(
      'driver'=> 'Pdo', 
      'dsn'=> 'mysql:dbname=pick_fire;host=localhost', 
      'driver_options' => array(
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8' 
      ), 
    ), 
    'service_manager' => array(
      'factories' => array(
        'Zend\Db\Adapter\Adapter'=> 'Zend\Db\Adapter\AdapterServiceFactory', 
      ), 
    ), 
); 

**db.local.php :** 

<?php 
return array(
'db' => array(
    'driver'  => 'Pdo', 
    'dsn'   => 'mysql:dbname=pick_fire;host=localhost', 
    'username'  =>'root', 
    'password'  =>'123456', 
    'driver_options'=> array(
     PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8' 
    ), 
), 
'service_manager' => array(
    'aliases' => array(
     'db' => 'Zend\Db\Adapter\Adapter', 
    ), 
),); 

---------------------------------------------- 

**Module.php :** 

public function getServiceConfig() 
    { 
     return array(
      'factories' => array(
       'mail.transport' => function (ServiceManager $serviceManager) { 
        $config = $serviceManager->get('Config'); 
        $transport = new Smtp();     
        $transport->setOptions(new SmtpOptions($config['mail']['transport']['options'])); 

        return $transport; 
       }, 
      ), 
     ); 
     return array(
      'factories' => array(
       'adapter' => function($serviceManager) { 
        $config = $serviceManager->get('config'); 
        $dbAdapter = new \Zend\Db\Adapter\Adapter($config['db']); 
        return $dbAdapter; 
       } 
      ), 
     ); 
    } 

---------------------------------------------- 

Пожалуйста, предложите мне, как мы получаем выборку подключения к базе данных и выполнения запросов в наших контроллеров и файлы модели.

Благодарим вас в Advanced.

ответ

2

В вашем getServiceConfig() у вас есть два оператора return ... второй никогда не вызывается. Должно работать:

**Module.php :** 

public function getServiceConfig() 
{ 
    return array(
     'factories' => array(
      'mail.transport' => function (ServiceManager $serviceManager) { 
       $config = $serviceManager->get('Config'); 
       $transport = new Smtp();     
       $transport->setOptions(new SmtpOptions($config['mail']['transport']['options'])); 

       return $transport; 
      }, 
      'adapter' => function($serviceManager) { 
       $config = $serviceManager->get('config'); 
       $dbAdapter = new \Zend\Db\Adapter\Adapter($config['db']); 
       return $dbAdapter; 
      } 
     ), 
    ); 
} 
Смежные вопросы