【发布时间】:2014-07-08 07:19:37
【问题描述】:
我已经制作了一个登录表单。 我总是在我的控制器中收到这个错误,它无法获取或创建这个数据库的实例。我已阅读有关它的所有文档以及发生此错误的原因。我尝试了一切来解决这个问题,但它仍然无法正常工作。有人可以帮助我。我正在将我的数据库用于其他事情,它可以建立连接,但是当我想加载登录页面时,我收到了这个错误。
这是我 global.php 中的代码
return array(
'db' => array(
'driver' => 'Pdo',
'dsn' => 'mysql:dbname=music;host=localhost',
'driver_options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
),
'username' => 'root',
'password' => ''
),
'service_manager' => array(
'factories' => array(
'Zend\Db\Adapter\Adapter'
=> 'Zend\Db\Adapter\AdapterServiceFactory',
),
),
);
这是我的控制器
public function indexAction()
{
/** @var Mysqli $dbAdapter */
$dbAdapter = $this->serviceLocator->get('db'); // This is where i'm getting the error from
$db = $this->params('fms');
$loginForm = new LoginForm();
if ($this->request->isPost()) {
$loginForm->setData($this->request->getPost());
if ($loginForm->isValid()) {
$auth = new AuthenticationService();
$result = $auth->authenticate(new SqlAdapter(
$loginForm->get('email')->getValue(),
$loginForm->get('password')->getValue(),
$dbAdapter
));
if ($result->getCode() == Result::SUCCESS) {
echo 'success';
return $this->redirect()->toUrl($this->url('')->fromRoute());
} else {
echo 'fail';
}
}
}
$this->view->loginForm = $loginForm;
return $this->view;
}
我不知道我在这里做错了什么。请有人帮助我:)
【问题讨论】:
-
ow,这是错误:Zend\ServiceManager\ServiceManager::get 无法为 db 获取或创建实例
标签: database zend-framework login frameworks zend-framework2