Проблема подключения к базе данных Zend Framework 2

Я использую ZF2 для создания новых приложений.
У нас есть некоторые проблемы, связанные с подключением БД под контроллером и файлом модели.

Мы поместили все учетные данные базы данных в «global.php» и «db.local.php», а также извлекли доступ к адаптеру БД в наш файл «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;
}
),
);
}

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

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

Заранее благодарю.

1

Решение

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

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]