区块链技术博客
www.b2bchain.cn

与Symfony2中同一捆绑中的两个实体管理器一起工作 – php程序员分享

本文介绍了与Symfony2中同一捆绑中的两个实体管理器一起工作 – php程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

我尝试与两个实体管理器一起使用同一包。我的配置是这样的:

orm:      default_entity_manager:   default     entity_managers:         electra:             connection:       electra             mappings:                 XXDemoBundle: ~         default:             connection:       default             mappings:                 XXDemoBundle: ~ 

有什么方法可以告诉实体属于哪个实体管理者?如果我要使用不属于默认实体管理器的表,它现在会崩溃。

谢谢

更新

这是我的连接配置:

doctrine:     dbal:         default_connection:       default         connections:             default:                 dbname:           old_project                 user:             root                 password:         123123                 host:             1.1.1.1                 port:             1             electra:                 dbname:           electra                 user:             root                 password:         123123                 host:             2.2.2.2                 port:             2  orm:     default_entity_manager:   electra     entity_managers:         electra:             connection:       electra             mappings:                 XXDemoBundle: ~           default:             connection:       default             mappings:                 XXDemoBundle: ~ 

参考方案

要在同一捆绑中使用多个entitymanager,您必须为每个entitymanager配置映射选项。

http://symfony.com/doc/current/reference/configuration/doctrine.html

例如关闭配置文件

doctrine:     dbal:         default_connection:   default         connections:             default:                 driver:   %database_driver%                 host:     %database_host%                 port:     %database_port%                 dbname:   %database_name%                 user:     %database_user%                 password: %database_password%                 charset:  UTF8             second:                 driver:   %database_sqlite_driver%                 host:     ~                 port:     ~                 dbname:   %database_sqlite_shop_name%                 path:     %database_sqlite_shop_name%                 user:     ~                 password: ~                 charset:  UTF8      orm:         auto_generate_proxy_classes: %kernel.debug%         default_entity_manager:   default         entity_managers:             default:                 connection:       default                 mappings:                     YourBundle:                       # you must specify the type                       type:     "annotation"                           # The directory for entity (relative to bundle path)                       dir:      "Entity/FirstDb"                               #the prefix                        prefix:   "YourBundleEntityFirstDb"              shop:                 connection:       second                 mappings:                     YourBundle:                       type: "annotation"                       #here the second path where entity for the connection stand                       dir: "Entity/SecondDb"                        #the prefix                       prefix: "YourBundleEntitySecondDb"  

You can now use console for managing your db with the –em parameter

Ex : update database for shop entitymanager

php app/console doctrine:schema:update --em=shop 

从Your Bundle Entity SecondDb中读取映射信息

例如:为默认的entitymanager更新数据库

php app/console doctrine:schema:update    

从Your Bundle Entity FirstDb中读取映射信息

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

我正在使用mysqli从数据库中获取某些数据。我正在使用的查询已设置为仅从数据库返回一行。有没有一种方法可以在不使用while循环的情况下获取该行的值?我知道一个while循环对于返回多于一行的行很有用,但是如果不需要while循环,我想避免这种情况,因为不必要的代码是不好的编程。 参考方案 是的-您可以使用:$row = $result->fetch…

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

如何更改默认网址。例如www.example.com/index.php-> www.example.com现在,我要将其设置为www.example.com/test.php。我应该在php.ini中进行更改吗? 参考方案 假设您正在使用apache,则可以通过DirectoryIndex指令执行此操作。Check out the docs。

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 与Symfony2中同一捆绑中的两个实体管理器一起工作 – php程序员分享
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们