symfony2动态数据库连接使用主义

2024-01-01

我试图在 Symfony 2 中建立多个数据库连接,但无法做到这一点。

我在 Google 和 stack-overflow 中进行了广泛的搜索,但在任何地方都是通过 config.yml 文件或动态数据库完成的,其中所有数据库都具有相同的 schema/entities 。

但对于我的情况,数据库是根据子域确定的,并且所有子域的数据库架构都不相同。

Ex:
test1.example.com => 应该加载 test1 数据库
test2.example.com => 将加载 test2 数据库

test1 和 test2 数据库是不同的,它们是在数据库级别创建的,并且在学说中没有实体条目。

任何人都可以帮助我如何在 Symfony 2 中执行此操作。


在我看来,使用 Doctrines ODM 并不是解决这个问题的正确方法。您仍然可以使用 Doctrine 连接到数据库并查询它们。但是,如果您没有实体类,那么使用实体管理器似乎是不合适的。

使用 Dotrine 进行连接处理

以下是如何使用该原则创建与数据库的连接Connection class:

/** @var \Doctrine\Bundle\DoctrineBundle\ConnectionFactory $connectionFactory */
$connectionFactory = $this->getContainer()->get('doctrine.dbal.connection_factory');
$connection = $connectionFactory->createConnection(
    array('pdo' => new \PDO("mysql:host=$hostname;dbname=$dbname", $username, $password))
);

现在你可以使用$connection作为一个简单的PDO object:

$connection->executeQuery('SELECT * FROM your_table');

您可以将此代码添加为service使其随处可用。
如果您想连接到不同域的不同数据库,您可以使用以下代码来识别域:

$this->getRequest()->getHost();

要访问域action做这个:

public function yourAction(Request $request, /* ... */)
{
    // the Controller extends the Container. So need to get it here:
    $connectionFactory = $this->get('doctrine.dbal.connection_factory');

    // also access the domain like this:
    $domain = $request->getHost();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

symfony2动态数据库连接使用主义 的相关文章

  • 无法访问 localhost/xampp/index.php

    我刚刚安装了 Windows 7 的 XAMPP 控制面板似乎工作正常 我启动了 MySql 和 Apache 我遇到的问题是 当我在浏览器 Google Chrome 中输入 localhost 时 它会将我发送到 http localh
  • PHP MongoDb 驱动程序:如何设置执行代码的超时

    我有以下代码 它在 MongoDb 端执行一段代码 mongoCode new MongoCode Some JS code db gt execute mongoCode array socketTimeoutMS gt 1000000
  • PHP WCF 集成

    是不是如果我想支持php客户端访问我的服务 我必须有一个基本的http端点 这是因为php仍然只支持soap 1 1吗 据我所知 自从我使用 PHP 以来已经两年了 情况仍然如此 如果客户端应用程序将使用 PHP 的内置 SoapClien
  • 如何将ElasticSearch与MySQL集成?

    在我的一个项目中 我计划将 ElasticSearch 与 MySQL 结合使用 我已经成功安装ElasticSearch 我可以单独管理ES中的索引 但我不知道如何用 MySQL 实现同样的功能 我读过一些文件 但我有点困惑 没有明确的想
  • 在哪里可以学习网络编程从入门到精通? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我尝试做教程 但它是无组织且无结构的 我在哪里可以学习 PHP 从初学者到大师 我正在寻找类似的网站w
  • Bugzilla 中分离客户端的基本权限

    我正在尝试配置一个 Bugzilla 实例 这将允许我的客户登录并为其正在开发 维护的网站提交错误 例如 我创建了 2 个名为 TestProject TestProject2 的产品和一个名为 TestClient 的用户 我想要实现的是
  • 覆盖 FOS 用户包中的“更改密码”模板

    我做了一些研究 遗憾的是找不到任何帮助 因此 我将 FOSUserBundle ChangePasswordAction 渲染到我的模板中 但它显示供应商提供的默认模板 我的渲染控制器的模板 block body h2 Einstellun
  • docker 中的 php Curl 冲突 CURLOPT_FILE 和 CURLOPT_RETURNTRANSFER

    当我使用curl时CURLOPT FILE and CURLOPT RETURNTRANSFER选项 文件为空 没有任何curl错误 fp fopen saveTo w ch curl init fileUrl curl setopt ch
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • 同一配置文件上的两个不同提供程序

    我在用着实体框架 6 1 0 I have 2 家提供者 MysqlClient 和 SQLServerCE 我需要创建2个不同的DBContext 这迫使我创造2个配置类因为mysql有一些不同的东西 但是当我初始化应用程序时 Datab
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou
  • 如何在codeigniter中将上传图片比例限制为16:9?

    这是我用来上传图像的代码 this gt load gt library upload ext pathinfo file name PATHINFO EXTENSION img name now ext imgConfig upload
  • 一次从多个表中删除行

    我正在尝试将 2 个查询合并为一个这样的查询 result db gt query DELETE FROM menu WHERE name new or die db gt error result db gt query DELETE F
  • PHP 接口有属性吗?

    PHP 中的接口有属性 还是只有方法 您可以在 DocBlock 中为接口声明属性 然后 IDE 将提示接口的这些属性 PhpStorm 会这样做 但这不会强制在实现类中实际实现这些字段 例如 property string passwor
  • PHP session_regenerate_id 和黑莓浏览器

    问候 我正在开发一个登录系统 并陷入了黑莓浏览器身份验证的困境 他们似乎对 PHP 的 session regenerate id 有问题 有人可以建议替代方案吗 以下是身份验证和登录脚本 UPDATE看来会话一般都不起作用 拿出 sess
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • 如何在 PHP 5.6 中通过 php.ini 设置“verify_peer_name=false”SSL 上下文选项

    案例 我想打开 SSL 连接localhost而 SSL 证书是 FQDN 的问题 问题 没有进行特殊处理就行 下面的程序失败并显示以下消息 PHP Warning stream socket enable crypto Peer cert
  • PayPal 网关已拒绝请求。安全标头无效(#10002:安全错误 Magento

    在 magento 中增加 PayPal 预付款 我已填写 magento admin 中的所有凭据 但是当我进入前端并单击 pay pal 按钮时 它给出了 PayPal 网关已拒绝请求 安全标头无效 10002 安全错误 我用谷歌搜索了
  • 通过 htaccess 将 PNG 解析为 PHP 仅适用于本地服务器,但不适用于网络服务器

    我用 PHP 创建了一个动态 PNG 图片 为了使用 PNG 扩展名 我创建了一个包含以下内容的 htaccess 文件 AddType application x httpd php png 在我的本地 XAMPP 服务器上 一切工作正常
  • PHP更改小数点分隔符

    在某些情况下 PHP 会在操作后更改小数点分隔符 下面是一个示例 为什么小数点分隔符变成 这是一个多语言网站 在西班牙语版本中 区域设置设置为西班牙语 es ES 小数点分隔符为 这就是为什么正在改变 解决方案是强制 LC NUMERIC

随机推荐

  • 在上面的文件夹中包含 .php 文件

    我收到此错误 Warning include config php function include failed to open stream No such file or directory in home soizastu publ
  • 计算目录中的文件数

    我想计算目录中的文件数 我在 QDir 类中使用了 count 方法 但它总是返回文件数加二 它为什么要做这个工作 谢谢 你应该使用flags QDir Filters with QDir NoDotAndDotDot
  • 无法获取访问令牌:通过 OAuth2Bearer 访问 S/4HANA 时未找到有效的 JWT 承载者

    我通过以下方式生成了项目 mvn archetype generate DarchetypeGroupId com sap cloud s4hana archetypes DarchetypeArtifactId scp cf spring
  • 读取 csv 文件 - 一个列表中的每个字符

    我对 python 相当陌生 确实需要一些帮助 我现在还没有找到任何对我有帮助的东西 我想将 csv 文件读取到list 但不幸的是我的输出不符合预期 而不是有一个像这样的列表 Weiz 61744 Deutschlandsberg 564
  • 无法在 PHP 中加载 LDAP 函数

    当尝试使用ldap connect http php net ldap connect 我收到此错误 致命错误 调用未定义的函数 ldap connect 我重新编译了 php 启用了 LDAP apache 模块 并且也编辑了 php i
  • J Oliver EventStore V2.0 问题

    我正在着手使用 CQRS 实施一个项目 并打算使用 J Oliver EventStore V2 0 作为我的事件持久化引擎 1 在文档中 ExampleUsage cs在 BuildSerializer 中使用了3个序列化器 我想这只是为
  • Java程序中“无法解析驱动程序”

    我是编程世界的新手 所以我不知道如何解决这个问题 Test public void LoginEmail driver findElement By id email button sendKeys email protected cdn
  • 安全 Web 服务 (NTLM) - Jmeter

    我正在尝试使用 Jmeter 测试 Web 服务 Web 服务受 NTLM 身份验证 Windows 保护 我可以使用加载 WSDLWebService SOAP Request采样器 目前 仅当我将代理服务器与本文中提到的 BurpSui
  • 定义宏中的括号

    是什么时候必要的将定义宏的整个 右 表达式放在括号中 如果我做类似的事情 define SUM x y x y 我必须将正确的表达式放入括号中 因为 在 C 中的优先级较低 如果我在以下上下文中使用它 它将不起作用SUM x y 5U 如果
  • 实现SelectableDataModel

    XHTML 方面
  • 在python中将rgb转换为lab的快速方法

    有没有在Python3中使用D50 sRGB将RGB转换为LAB的快速方法 Python 色彩数学 https github com gtaylor python colormath太慢了 skimage http scikit image
  • 使用 Directory.Build.Prop for .NET Framework 添加包

    我有一个 Visual Studio 解决方案 我尝试在所有项目中使用构建 prop 文件添加代码分析器 我的项目依赖于 NET Core 以及框架 我有以下 Directory Build Prop 文件
  • 为什么我收到有关 Java 实用程序类的警告

    我正在学习 Java 和 OOPS 在 Eclipse 中编写基本的 Hello World 时 我看到一个黄色三角形告诉我 实用程序类不应具有公共或默认构造函数 我无法理解为什么会发生这种情况 这意味着什么 我做错了什么 class He
  • Rails 使用正在运行的构建器编写 xml

    我想在我的网站中使用 hipay 所以我需要在操作中生成一个 xml 然后通过帖子发送到 hipay 网站 我的问题是 我如何动态创建 xml 然后在同一操作中通过邮寄发送此 xml 我的控制器中的示例 def action generat
  • 张量流/tflearn 输入形状

    我正在尝试创建一个 lstm rnn 来生成音乐序列 训练数据是大小为 4 的向量序列 表示一些要训练的歌曲中每个音符的各种特征 包括 MIDI 音符 从我的阅读来看 我想要做的是对于每个输入样本 输出样本是下一个大小为 4 的向量 即 它
  • Vb.net 2010,如何同时使用两个过滤器

    我想一次使用两列在 Visual Basic 中过滤 datagridview 例如 我想过滤主题列和姓氏列 我目前使用此代码 me studentbindingsource filter Subject code like ComboBo
  • 使用带有令牌的 Google API [Django 和 AllAuth]

    我在 Django 应用程序上使用 AllAuth 来管理用户身份验证 这样我的用户就可以连接他们的 Google 帐户 并且我获得一个 google API 令牌 具有适当的范围 我想使用该令牌来访问 google API 在我的例子中是
  • 使用 Genymontion 进行本机反应抛出并发异常

    我有基本的反应本机应用程序并尝试在 Genymon 中运行 目前我遇到错误 java util concurrent ExecutionException java lang RuntimeException ReferenceError
  • 请解释一下这些 Python Fetch 类型

    这些抓取有什么区别 请给我一个参考网站的例子 以得到清晰的想法 我仍然对此感到困惑 res cr dictfetchall res2 cr dictfetchone res3 cr fetchall res4 cr fetchone cr
  • symfony2动态数据库连接使用主义

    我试图在 Symfony 2 中建立多个数据库连接 但无法做到这一点 我在 Google 和 stack overflow 中进行了广泛的搜索 但在任何地方都是通过 config yml 文件或动态数据库完成的 其中所有数据库都具有相同的