gpt4 book ai didi

database - Zend\ServiceManager\ServiceManager::get 无法为 db 获取或创建实例

转载 作者:搜寻专家 更新时间:2023-10-30 23:07:36 25 4
gpt4 key购买 nike

我做了一个登录表单。我的 Controller 中总是出现此错误,它无法为此数据库获取或创建实例。我已经阅读了所有关于它的文档以及为什么会出现这个错误。我已尽一切努力解决此问题,但仍然无法正常工作。有人可以帮帮我吗。我正在使用我的数据库做其他事情,它可以建立连接,但是当我想加载登录页面时,我收到了这个错误。

这是我的 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',
),
),
);

这是我的 Controller

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;

}

我不知道我在这里做错了什么。请有人帮助我 :)

最佳答案

你可能需要的是这个-

$dbAdapter = $this->serviceLocator->get('Zend\Db\Adapter\Adapter');


如果您需要确切的 db 数组,那么执行此操作 -

$config = $this->serviceLocator->get('config');
$db_array = $config['db'];

希望对你有帮助。

关于database - Zend\ServiceManager\ServiceManager::get 无法为 db 获取或创建实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24625882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com