Я новичок в связке EasyAdmin. Я пытался загрузить содержимое c, указанное пользователем, в список вошедшего в систему пользователя.
Итак, вот мой composer.json
файл:
{
"type": "project",
"license": "proprietary",
"require": {
"php": "^7.2.5",
"ext-ctype": "*",
"ext-iconv": "*",
"easycorp/easyadmin-bundle": "^2.3",
"sensio/framework-extra-bundle": "^5.1",
"symfony/asset": "5.0.*",
"symfony/console": "5.0.*",
"symfony/dotenv": "5.0.*",
"symfony/expression-language": "5.0.*",
"symfony/flex": "^1.3.1",
"symfony/form": "5.0.*",
"symfony/framework-bundle": "5.0.*",
"symfony/http-client": "5.0.*",
"symfony/intl": "5.0.*",
"symfony/mailer": "5.0.*",
"symfony/monolog-bundle": "^3.1",
"symfony/notifier": "5.0.*",
"symfony/orm-pack": "*",
"symfony/process": "5.0.*",
"symfony/security-bundle": "5.0.*",
"symfony/serializer-pack": "*",
"symfony/string": "5.0.*",
"symfony/translation": "5.0.*",
"symfony/twig-pack": "*",
"symfony/validator": "5.0.*",
"symfony/web-link": "5.0.*",
"symfony/yaml": "5.0.*"
},
У меня есть сущность Project Requirements, которая имеет отношения «многие ко многим» с сущностью User, например:
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="User", inversedBy="projectRequirementsHasUserProjectRequirements")
* @ORM\JoinTable(name="project_requirements_has_user",
* joinColumns={
* @ORM\JoinColumn(name="project_requirements_has_user_project_requirements_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="project_requirements_has_user_user_id", referencedColumnName="id")
* }
* )
*/
private $projectRequirementsHasUserUser;
/**
* Constructor
*/
public function __construct()
{
$this->projectRequirementsHasUserUser = new \Doctrine\Common\Collections\ArrayCollection();
}
Итак, при добавлении требований я могу назначить пользователя следующим образом:
Вы можете видеть, что первые требования были назначены 2 пользователям:
Теперь я хочу показать все требования, которые были назначены зарегистрированному пользователю.
I узнал, что мне нужно переопределить EasyAdminController по умолчанию, поэтому я настроил свою сущность в config/packages/easy_admin.yaml
:
# Project Planning
ProjectRequirements:
controller: App\Controller\ProjectRequirementsController
class: App\Entity\ProjectRequirements
И затем создал контроллер, но не знаю, как написать фильтр или запрос для выбора только те требования, которые предъявлены зарегистрированному пользователю:
<?php
namespace App\Controller;
use Doctrine\ORM\QueryBuilder;
use EasyCorp\Bundle\EasyAdminBundle\Controller\EasyAdminController;
class ProjectRequirementsController extends EasyAdminController {
protected function createListQueryBuilder($entityClass, $sortDirection, $sortField = null, $dqlFilter = null)
{
/** @var QueryBuilder $result */
$result = parent::createListQueryBuilder($entityClass, $sortDirection, $sortField, $dqlFilter);
return $result;
}
}
Любая помощь очень приветствуется.