草庐IT

Doctrine_RawSql

全部标签

php - Symfony 和 Doctrine 使迁移无效

Doctrine在symfony中生成迁移,运行迁移后没有任何变化,所以在下一个差异期间它是相同的。如何使Doctrine不产生这种迁移?手动运行altertable命令不会删除列排序规则。bin/consoledoctrine:migration:diff向上$this->addSql('ALTERTABLEsessionCHANGEsess_idsess_idVARCHAR(128)NOTNULL');向下$this->addSql('ALTERTABLEsessionCHANGEsess_idsess_idVARCHAR(128)NOTNULLCOLLATEutf8_unicod

php - 如何使用 Symfony2、Doctrine2 执行存储过程

我正在使用以下代码:useDoctrine\ORM\Query\ResultSetMapping;............$em=$this->get('doctrine.orm.entity_manager');$rsm=newResultSetMapping();$query=$em->createNativeQuery('CALLprocedureName(:param1,:param2)',$rsm)->setParameters(array('param1'=>'foo','param2'=>'bar'));$result=$query->getResult();//$res

php - 如何从 Doctrine Fixture 引用中获取实体?

我在我的项目中添加了依赖于相互引用实体对象的数据装置。在数据夹具一中,我添加了实体引用,例如://GroupEntity_Fixtures.phpfile$this->addReference('GROUP_USER',$groupUser);$this->addReference('GROUP_ADMIN',$groupAdmin);其中$groupAdmin和$groupUser都是Group()实体。在我的第二个灯具文件中,我想通过以下方式将这些实体添加到我的用户实体://UserEntity_Fixtures.phpfile$userActive->addGroup($this

php - Doctrine 2 中的动态表/实体名称

我希望有人能阐明我的代码发生了什么。我需要一个表示通用表的实体作为具有Xid后缀的表的模型。例如,我有一个实体:CustomerX我需要查询的表有cusotmer_1、customer_2、customer_3……等。我目前正在使用:classCustomerX{/***CustomerX**@Table(name="customer_")*@Entity*///.....propertiesandsetters/getters....private$_tableName=null;publicfunctiongetTableName(){return$this->_tableName

php - 如何在 Doctrine 映射中描述多列外键

我们有一个数据库模式,以简化的(稍微做作的)形式看起来像:从用户到域的外键设置在列(domainId,groupId)上,以保证引用完整性。此结构可以很好地满足预期目的。然而,对于一个与同一个数据库对话的新应用程序,我现在需要为Doctrine创建一个映射来映射上述结构,包括两个列上的外键关系。我试过以下方法:但这给了我一个错误:UnitOfWork.php第2649行:未定义索引:groupId所以,我的问题是:在Doctrine中描述多列多对一外键关系的正确方法是什么?为了完整起见,数据库按照上述ERD中的描述为模式创建代码:CREATETABLE`users`(`userId`I

php - 如何从 doctrine/symfony 中设置 MysQL 变量(time_zone)?

我想知道如何从Symfony/Doctrine中将MySQL时区设置为UTC(SETtime_zone='UTC'),所以当我调用UNIX_TIMESTAMP()在我的查询中的DATETIME字段上运行,它返回UTCunix时间而不是服务器时区的unix时间。我该如何做到这一点,是在每次连接时自动执行,还是在时区有所不同的这些类型的查询之前手动执行?顺便说一句,我需要在MySQL查询而不是应用程序中进行这种转换,这样我就可以GROUPBY一个需要纪元时间的间隔。 最佳答案 您可以通过在ProjectConfiguration中调用的

mysql - Doctrine:特殊字符不保存到数据库字符串字段中

我正在尝试使用doctrine(在symfony2中)保存到字符串字段(mysql数据库):$blogpost->setTitle="Test!§$%&/()=?äöüÄÖÜ:D";$em=$this->getDoctrine()->getManager();$em->persist($blogpost);$em->flush();但它救了我:“测试!”(剩下的不见了)实体是:/***@ORM\Column(type="string")*/protected$Title;mysql数据库是utf8_general_ci。(当我使用phpmyadmin手动添加实体时,它工作正常。)我需要

php - Doctrine2.3 和 OneToOne 级联持久化似乎不起作用

我有两个实体(User和UserPreferences),我想单向映射OneToOne。代码看起来像这样:/***@ORM\Table("users")*@ORM\Entity*/classUser{/***@ORM\Column(name="id",type="integer")*@ORM\Id*/protected$id;.../***@ORM\Column(name="user_preferences_id",type="integer")*@ORM\OneToOne*(*targetEntity="UserPreferences",*cascade={"persist"}*)*

mysql - 如何使用 doctrine 2 在 symfony 2 中调用带输出参数的 mysql 存储过程?

我找不到任何使用symfony2原则2使用mysql存储过程的示例。下面是我的存储过程的签名,CREATEPROCEDURE`get_matched_users_by_name`(INlastnameVARCHAR(50),INfirstnameVARCHAR(50),INmiddlenameVARCHAR(50),INdebugINT(11),OUTuser_idINT(11),OUTuser_nameVARCHAR(60))BEGIN..........END如何调用上述存储过程并获取输出参数user_id和user_name?我已经搜索过类似的问题,但没有找到这样的例子,也引用了

mysql - Doctrine 默认值与空插入

有件事让我很烦恼。我试图找到一个明确的答案,但到目前为止没有运气。我正在使用Symfony3、Doctrine2和MariaDB。假设我在我的实体中创建了这样的东西:/***@ORM\Column(*name="status",*type="boolean",*options={"default":0}*)*/private$status;现在多亏了这个,我在数据库中有了默认值为0的字段:`status`tinyint(1)NOTNULLDEFAULT'0',但是,每次我尝试将数据保存到数据库时,这样做有什么意义(例如,我尝试仅保存10个字段中的1个):$story->setConte