首页 > 解决方案 > Sylius [管理员] 如何直接在存储库功能中获取登录用户详细信息

问题描述

我需要在存储库函数(createListQueryBuilder)中获取记录的用户详细信息,而不需要从控制器传递用户详细信息。

这就是我的存储库的样子。

class ProductRepository extends BaseProductRepository
{
   public function createListQueryBuilder(string $locale, $taxonId = null): QueryBuilder
    {
        $queryBuilder = $this->createQueryBuilder('o')
            ->addSelect('translation')
            ->innerJoin('o.translations', 'translation', 'WITH', 'translation.locale = :locale')
            ->setParameter('locale', $locale)
        ;

        if (null !== $taxonId) {
            $queryBuilder
                ->innerJoin('o.productTaxons', 'productTaxon')
                ->andWhere('productTaxon.taxon = :taxonId')
                ->setParameter('taxonId', $taxonId)
            ;
        }

        return $queryBuilder;
    }
}

标签: phpsymfony4sylius

解决方案


我已经在这里回答了。

对于更多上下文,此方法将用于Sylius Grid 配置,当 Doctrine ORM ( ) 用作驱动程序时,该配置支持Symfony 的表达式语言用于存储库方法参数。doctrine/orm


推荐阅读