【问题标题】:symfony 2.8.8 How to check framework connects to mysql(mariadb)symfony 2.8.8 如何检查框架连接到 mysql(mariadb)
【发布时间】:2016-09-25 10:29:29
【问题描述】:

我正在使用 Symfony 2.8.8。框架,并且非常喜欢它来开发我的第一个 Web 应用程序。 symfony 的书非常有用。我在数据库和学说章节。

我的问题是:在编写生成数据库/实体的学说类文件之前,有没有一种简单的方法可以知道数据库是否正常工作并且 symfony 能够连接到数据库?

我正在使用以下环境:

PHP:5.5.38 cli,
交响乐:2.8.8,
数据库:通过 XAMPP v5.6.23 安装的 mariadb 10.0.17。使用 XAMPP 控制面板 3.2.2 启动,
WEBSERVER:php 内部网络服务器,加载 php.ini 文件。
INI:php.ini 未注释扩展=php_mysql.dll,扩展=php_pdo_mysql.dll。更新了 parameters.yml 以指向托管的 mariadb。更新了 config.yml 以使用 pdo_mysql 驱动程序
操作系统:Windows 7

【问题讨论】:

  • HI Puya,感谢您的回复。我尝试使用教义\ORM\EntityRepository 进行此操作。我收到错误“未定义的方法 getEntityManager”。你能帮我找出问题所在吗?虽然我使用以下命令: php -S 127.0.0.1:44 -t -c \Php.ini C:\php\>php --ini 配置文件(php.ini)路径:C :\Windows 加载的配置文件:(无)检查加载的扩展,它显示 PDO 和 mysqlnd 已加载。我错过了任何扩展吗? [PHP Modules mysqlnd odbc PDO 检查了 php ext 文件夹中的 dll 文件。 (php_pdo_mysql,php_mysql)

标签: php mysql symfony doctrine mariadb


【解决方案1】:

尝试使用它。我不确定 mariadb 是否也一样。

创建一个控制器并将其传递到控制器中。

$entityManager = $this->getEntityManager() ;

try {
$entityManager->getConnection()->connect();
} catch (\Exception $e) {
// failed to connect
}

[编辑]

我做了一些研究,似乎是 getEntityManager();自 2.3 起已弃用

你可以使用

// Get the entity manager
   $em = $this->getDoctrine()->getManager();
// Connection will be written as
   $em = $this->getDoctrine()->getConnection();

或者

查看此文档Doctrine connection

【讨论】:

  • symfony 不在乎它是什么数据库类型。这就是为什么它用教义抽象它。虽然 tbh,但如果没有 db 连接,symfony 会在它到达这一步之前抛出一个错误
  • 你有它:D Thnx DevDonkey
  • HI Puya,感谢您的回复。我尝试使用教义\ORM\EntityRepository 进行此操作。我收到错误“未定义的方法 getEntityManager”。在这里做一些分析是我能收集到的。
  • 这样试试 $em = $this->getDoctrine()->getManager();
猜你喜欢
  • 1970-01-01
  • 2020-10-18
  • 2020-02-09
  • 1970-01-01
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
  • 2018-09-12
  • 1970-01-01
相关资源
最近更新 更多