api-skeletons/zf-doctrine-repository-query-provider

1.0.1 2017-07-11 01:12 UTC

This package is auto-updated.

Last update: 2024-09-11 15:03:29 UTC


README

Build Status Total Downloads

一个用于集成 zf-doctrine-repositoryDoctrine in Apigility 查询提供者的插件。

这允许您使用相同的业务逻辑和过滤来获取实体,这在需要访问当前用户的实体时非常有用。可以在整个应用程序中应用业务规则,以实现对当前用户实体访问的权限。

此模块的目的是解决验证用户是否有权访问特定实体的重复代码问题。

安装

此模块使用 composer 进行安装。有关 composer 文档,请参阅 getcomposer.org

composer require api-skeletons/zf-doctrine-repository-query-provider

安装完成后,将 ZF\Doctrine\Repository\Query\Provider 添加到 config/application.config.phpconfig/modules.config.php 中的模块列表中。

zf-component-installer

如果您使用 zf-component-installer,该插件将为您安装 zf-doctrine-repository-query-provider 作为模块。

配置

此仓库插件提供了对 findfindOneByfindByfindAll 的访问,这些查询提供者已经是您应用程序的一部分。

要添加带有查询提供者的实体,您应将文件 config/zf-doctrine-repository-query-provider.global.php.dist 复制到您的autoload目录中,并将其重命名为 config/zf-doctrine-repository-query-provider.global.php,然后添加您希望使用此插件使用的每个实体到该配置中。

使用

这些函数反映了默认的 findfindOneByfindByfindAll 函数。

通过 id 返回实体或 null

$objectManager
    ->getRepository('Database\Entity\Project')
    ->plugin('queryProvider')
    ->find($id)
    ;

根据过滤器返回一个实体

$objectManager
    ->getRepository('Database\Entity\Project')
    ->plugin('queryProvider')
    ->findOneBy([
        'name' => $name
    );

根据过滤器返回实体数组

$objectManager
    ->getRepository('Database\Entity\Project')
    ->plugin('queryProvider')
    ->findBy([
        'name' => $name
    );

返回查询提供者提供的所有实体

$objectManager
    ->getRepository('Database\Entity\Project')
    ->plugin('queryProvider')
    ->findAll()
    ;

findBy* 函数还接受排序、限制和偏移量等参数。