2014-11-17 5 views
0

새로운 응용 프로그램을 만드는 데 ZF2가 사용되었습니다. 컨트롤러 및 모델 파일에서 db 연결에 관한 몇 가지 문제가 있습니다.Zend Framework 2 데이터베이스 연결 문제

모든 데이터베이스 자격 증명을 "global.php"및 "db.local.php"에 넣었으며 "Module.php"파일에서 db 어댑터 액세스를 가져 왔지만 컨트롤러 및 모델 파일에서 데이터베이스 연결을 가져 오지 않았습니다 컨트롤러 및 모델에서 쿼리를 실행하지 마십시오.

**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; 
       } 
      ), 
     ); 
    } 

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

우리가 데이터베이스 연결을 가져 얼마나 저를 제안하고 우리의 컨트롤러와 모델 파일에 쿼리를 실행하십시오 :

여기 내 코드입니다.

고맙습니다.

답변

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; 
      } 
     ), 
    ); 
}