首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式加载symfony中的实体

以编程方式加载symfony中的实体
EN

Stack Overflow用户
提问于 2017-10-15 11:45:27
回答 3查看 641关注 0票数 0

我试图在实体类中加载并在循环中使用,以便动态地从文件中将内容加载到相关表中。

是否可以从以下位置加载所有实体文件

代码语言:javascript
复制
use AppBundle\Entity\aaPostcode;
use AppBundle\Entity\abPostcode;
use AppBundle\Entity\acPostcode;
use AppBundle\Entity\adPostcode;

就像这样?

代码语言:javascript
复制
use AppBundle\Entity\*

不确定这在Symfony中是否可行。

我的下一个问题是在循环中使用prefixedEntity,像这样-

代码语言:javascript
复制
new $entityPrefix

将$entityPrefix设置为下列格式时

代码语言:javascript
复制
$entityPrefix = str_replace([".csv"], "", $entityFilename) . "Postcode" . '()';

返回的字符串

代码语言:javascript
复制
"abPostcode()"

有人能告诉我为什么打电话吗?

代码语言:javascript
复制
new $entityPrefix;

没有用

提前感谢您的帮助!

试着打电话

代码语言:javascript
复制
new $entityPrefix();

返回

代码语言:javascript
复制
[Symfony\Component\Debug\Exception\ClassNotFoundException]           
Attempted to load class "abPostcode" from the global namespace.      
Did you forget a "use" statement for "AppBundle\Entity\abPostcode"?  

即使在我当前是hrd编码的时候,也要使用stament调用

代码语言:javascript
复制
use AppBundle\Entity\abPostcode;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-16 11:07:09

我解决了这个问题,方法是将该功能提取到帮助程序中,并根据输入运行一个开关语句--在本例中是{前缀}。

票数 0
EN

Stack Overflow用户

发布于 2017-10-15 14:02:10

如果不调用完整的命名空间,就无法动态实例化类。试一试:

代码语言:javascript
复制
$namespace = "AppBundle\Entity\\";
$entityName = "YourEntity";
$namespace .= $entityName;
$class = new $namespace();

这是为我工作..。

票数 1
EN

Stack Overflow用户

发布于 2021-05-11 11:29:44

我遇到了这样的问题:将数据从一种数据库类型迁移到另一种数据库类型。IE:甲骨文转MySQL。有了数百张表,使用部分就会变大。

这是在Symfony 5.2.x BTW上。

当我使用标准存储库或链接到表的存储库运行查询时,我可以使用其完整的命名空间调用实体。

代码语言:javascript
复制
$oracle = $em2->getRepository(\App\Entity\Oracle\Appoints::class)->Appoints();

因此,我不必加载“使用App\Entity\Oracle\Appoints”

然后,我可以以同样的方式创建一个新对象:

代码语言:javascript
复制
$mysqlObject = new \App\Entity\OracleAppPoints();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46754646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档