Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有没有办法在Doctrine2中将SQL表达式作为实体字段值传递?_Php_Sql_Doctrine Orm - Fatal编程技术网

Php 有没有办法在Doctrine2中将SQL表达式作为实体字段值传递?

Php 有没有办法在Doctrine2中将SQL表达式作为实体字段值传递?,php,sql,doctrine-orm,Php,Sql,Doctrine Orm,有没有办法做到这一点:(愚蠢的代码) ? [编辑] 我想在Oracle表空间中插入sequence的ID。sequence\u name。接下来,我知道这可以通过trigger来完成,但是我的access用户无法在我的env中创建触发器。如果你问一个关于你试图实现的事情的问题,效果会更好 据我所知,这是行不通的,Doctrine2对于将域模型与持久层混合在一起非常奇怪。这将把域层与持久层耦合起来 你想达到什么目的?您最好使用事件侦听器,尽管我不确定您要解决的问题是什么。不需要,Doctrine可

有没有办法做到这一点:(愚蠢的代码)

?

[编辑]
我想在Oracle
表空间中插入sequence的ID。sequence\u name。接下来,我知道这可以通过trigger来完成,但是我的access用户无法在我的env中创建触发器。

如果你问一个关于你试图实现的事情的问题,效果会更好

据我所知,这是行不通的,Doctrine2对于将域模型与持久层混合在一起非常奇怪。这将把域层与持久层耦合起来


你想达到什么目的?您最好使用事件侦听器,尽管我不确定您要解决的问题是什么。

不需要,Doctrine可以自行处理Oracle序列,请参阅


另请参见。

您必须记住Doctrine2实体映射SQL字段。每个数据类型都需要可映射到数据库


字符串变为varchar或blob,整数变为int等。对象没有相应的数据类型,只有一个例外:关系!作为对象关系数据映射器,如果由您定义,则原则可以将对象(实体或EntityCollection)映射到相关表。您真的应该更深入地了解功能原则为您提供的定义这些功能的方法。

答案是,这在doctrine2中是不可能的。

您的SQL代码是什么?也许有更好的方法可以做到这一点,这里的原则是为您的数据库提供一个抽象,您不应该在这里编写原始SQL。
$entity = new Entity\SomeEntity();

$entity->mappedField = new SQLExpression('SOME SQL CODE HEARE');

$entityManager->persist($entity);
$entityManager->flush();