I want check access_control from a subresource but it's not working.
My first entity has a OneToMany relationship with second.
src/Entity/Course.php
/**
* @ApiResource(
* collectionOperations={
* "get"={"access_control"="object.userCompanyRoles.user == user"}
* }
* )
*
* @ORM\Table(name="course")
* @ORM\Entity(repositoryClass="App\Repository\CourseRepository")
*/
class Course
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="UserCompanyRole", mappedBy="course")
* @ApiSubresource()
*/
private $userCompanyRoles;
}
src/Entity/UserCompanyRole.php
/**
* @ApiResource()
* @ORM\Table(name="user_company_role")
* @ORM\Entity(repositoryClass="App\Repository\UserCompanyRoleRepository")
*/
class UserCompanyRole
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Course", inversedBy="userCompanyRoles", cascade={"all"})
*/
private $course;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="userCompanyRoles", cascade={"all"})
* @ORM\JoinColumn(nullable=false)
*/
private $user;
}
But when i send request I have this :
"hydra:description": "Notice: Undefined property: ApiPlatform\Core\Bridge\Doctrine\Orm\Paginator::$userCompanyRoles",
I can't simplify my relation because many User can have many roles on courses.
Does anyone have a suggestion about my problem? Thanks.