Symfony:6.1.4 EasyAdmin: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 檔案。你有實作這個或其他想法的線索嗎?
uj5u.com熱心網友回復:
您應該能夠$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());
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/507515.html
