以编程方式查询Symfony/ORM

以编程方式查询Symfony/ORM,symfony,orm,doctrine,introspection,Symfony,Orm,Doctrine,Introspection,我使用条令定义的实体模式作为参考来创建访问此类数据的C++/QtaPI 有没有一种方法可以编程地遍历所有字段及其参数,使得只有一个主模式(C++的样板标题是从它生成的)?< /p> ,以获得实体信息,例如属性和属性,可以使用理论元数据驱动程序。您只需要您的实体名称空间,一旦您拥有了它,您就可以使用条令来获取它们的元数据 我已经在我的应用程序中为此创建了一个服务(在这里发布只是一个使用示例): 在services.yml/xml上注册它,它使用条令实体管理器作为依赖项 services:

我使用条令定义的实体模式作为参考来创建访问此类数据的C++/QtaPI


有没有一种方法可以编程地遍历所有字段及其参数,使得只有一个主模式(C++的样板标题是从它生成的)?< /p> ,以获得实体信息,例如属性和属性,可以使用理论元数据驱动程序。您只需要您的实体名称空间,一旦您拥有了它,您就可以使用条令来获取它们的元数据

我已经在我的应用程序中为此创建了一个服务(在这里发布只是一个使用示例):

在services.yml/xml上注册它,它使用条令实体管理器作为依赖项

services:
    Mapping.EntityService:
        class: Acme\Project\ProjectUserBundle\Service\Mapping\EntityService
        arguments: [ @doctrine.orm.entity_manager ]
而不仅仅是在您的控制器上使用该服务(在我的例子中,我使用该服务获取实体并为用户应用对它们的权限(读/写/查看):

请注意,这只是一个用法示例,有关更多信息,请参阅文档:

< >生成C++头文件,您可能会创建另一个服务来处理,BTW可以使用这个映射。
services:
    Mapping.EntityService:
        class: Acme\Project\ProjectUserBundle\Service\Mapping\EntityService
        arguments: [ @doctrine.orm.entity_manager ]
class UserPermissionController extends Controller
{

    public function yourAction()
    {
        $entityService = $this->get('Mapping.EntityService');

        $entitiesToApplyPermissions = $entityService->getAllEntityClassesInNamespace('/Acme/');

        foreach ($entitiesToApplyPermissions as $entity) {

            $entityService->getEntityMetadata($entity);
            //do whatever you want here
        }
    }
}