В EasyAdmin вы можете использовать метод `setQueryBuilder` для настройки запросов, которые выбирают данные для отображения в админке. Если вам нужно передать переменную, например `$gameId`, и использовать её для фильтрации сущностей, вы можете сделать это следующим образом:
1. **Создайте пользовательский контроллер:** Вам нужно будет переопределить действие, которое использует `setQueryBuilder`.
2. **Используйте конструктор:**
В вашем контроллере добавьте переменную `$gameId` и передайте её в метод `setQueryBuilder`.
Вот пример того, как это можно сделать:
```php
// src/Controller/Admin/GameCrudController.php
namespace App\Controller\Admin;
use App\Entity\YourEntity; // Используйте вашу сущность
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;
use Doctrine\ORM\QueryBuilder;
class GameCrudController extends AbstractCrudController
{
private $gameId;
public function __construct($gameId)
{
$this->gameId = $gameId;
}
public function configureCrud(Crud $crud): Crud
{
return $crud
->setPageTitle(Crud::PAGE_INDEX, 'My Custom Title');
}
public function createIndexQueryBuilder(EntityRepository $repository): QueryBuilder
{
$qb = $repository->createQueryBuilder('e');
// Фильтруем по $gameId
if ($this->gameId) {
$qb->andWhere('e.game = :gameId')
->setParameter('gameId', $this->gameId);
}
return $qb;
}
// Другие методы CRUD...
}
```
3. **Регистрация контроллера:** Убедитесь, что вы правильно регистрируете свой контроллер в файле конфигурации EasyAdmin.
4. **Передача `$gameId`:** Если вам нужно передать `$gameId` динамически (например, из URL), вы можете использовать Router для извлечения параметра и передачи его в контроллер.
Пример маршрута:
```yaml
# config/routes.yaml
game:
path: /admin/game/{gameId}
controller: App\Controller\Admin\GameCrudController
```
Теперь ваше `GameCrudController` получит `gameId` как параметр, и вы сможете использовать его в методе `createIndexQueryBuilder`.
Помните, что каждый раз, когда вы создаёте новый контроллер или новый метод, важно обратить внимание на то, как вы хотите взаимодействовать с вашей сущностью и как вы хотите управлять отображением данных в EasyAdmin.