symfony 查看登录用户的产品

fwzugrvs  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(156)

系统管理:6.1.4易用管理:4.3.5
我尝试显示由登录用户创建的产品。默认情况下,无论作者是谁,都会显示所有产品。
ProductCrudController.php

class ProductCrudController extends AbstractCrudController
{
    public static function getEntityFqcn(): string
    {
        return Product::class;
    }
    public function createIndexQueryBuilder(SearchDto $searchDto, EntityDto $entityDto, FieldCollection $fields, FilterCollection $filters): QueryBuilder
    {
        $response = parent::createIndexQueryBuilder($searchDto, $entityDto, $fields, $filters);
        $response->andWhere('entity.creator = :creator')->setParameter('creator', ???????);
        return $response;
    }

[...]

}

问题:我需要获得创建产品的用户的ID。
但我无法通过$_SESSION将其取回:

{{dump(app.user)}}

我能想到的一个解决方案是在ProductCrudController.php中使用app.user.id,但它是一个php文件。你有任何线索来实现这个或其他想法吗?

ffscu2ro

ffscu2ro1#

您应该能够在控制器中使用$this->getUser(),检索当前登录的用户,并使用它来过滤您的产品。

public function createIndexQueryBuilder(SearchDto $searchDto, EntityDto $entityDto, FieldCollection $fields, FilterCollection $filters): QueryBuilder
{
    return parent::createIndexQueryBuilder($searchDto, $entityDto, $fields, $filters)
        ->andWhere('entity.creator = :creator')
        ->setParameter('creator', $this->getUser());
}

相关问题