DDC-3991: Edit New issue Query Builder to Return result as an object #4871

Closed
opened 2026-01-22 14:51:04 +01:00 by admin · 0 comments
Owner

Originally created by @doctrinebot on GitHub (Nov 11, 2015).

Originally assigned to: @beberlei on GitHub.

Jira issue originally created by user mtaqi:

I have one to many relationship between Roles and UserRoles.

class User {
    /****
     * @ORM\OneToMany(targetEntity="PNC\PermissionsBundle\Entity\UserRoles", mappedBy="user", cascade={"persist", "remove"})
     */
    protected $usersRole;
}

class UserRoles {
    /****
     * @ORM\ManyToOne(targetEntity="PNC\PermissionsBundle\Entity\Roles", inversedBy="usersRole", cascade={"persist"}, fetch="EAGER")
     * @ORM\JoinColumn(name="role_id", referencedColumnName="id")
     */
    protected $role;
    /****
     * @ORM\ManyToOne(targetEntity="Application\Sonata\UserBundle\Entity\User", inversedBy="usersRole", cascade={"persist"}, fetch="EAGER")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
     */
    protected $user;
}


class Roles {
    /****
     * @ORM\OneToMany(targetEntity="PNC\PermissionsBundle\Entity\UserRoles", mappedBy="role", cascade={"persist", "remove"})
     */
    protected $usersRole;
}

I need to insert into the UserRoles Entity. I only have $user as object but $role as id.

$user_roles = new UserRoles();
 $role = $em->getRepository('PNCPermissionsBundle:Roles')->findRoleByID($id);

$user_roles->setRole($role);
$user_roles->setUser($user);
$user_roles->setIsPrimary(false);
$em->persist($user_roles);
$em->flush();

and the repository function

public function findRoleByID($role_id){

  return $this->createQueryBuilder("r")
            ->select("r.id")
            ->where("r.id = :role_id")
            ->setParameter(":role*id", $role*id)
            ->getQuery()
            ->getOneOrNullResult();
    }

what i understand is that $roles is now behave as an integer, but it should be an object of Roles Entity. How can id do this in my Scenario....?

Originally created by @doctrinebot on GitHub (Nov 11, 2015). Originally assigned to: @beberlei on GitHub. Jira issue originally created by user mtaqi: I have one to many relationship between Roles and UserRoles. ``` java class User { /**** * @ORM\OneToMany(targetEntity="PNC\PermissionsBundle\Entity\UserRoles", mappedBy="user", cascade={"persist", "remove"}) */ protected $usersRole; } class UserRoles { /**** * @ORM\ManyToOne(targetEntity="PNC\PermissionsBundle\Entity\Roles", inversedBy="usersRole", cascade={"persist"}, fetch="EAGER") * @ORM\JoinColumn(name="role_id", referencedColumnName="id") */ protected $role; /**** * @ORM\ManyToOne(targetEntity="Application\Sonata\UserBundle\Entity\User", inversedBy="usersRole", cascade={"persist"}, fetch="EAGER") * @ORM\JoinColumn(name="user_id", referencedColumnName="id") */ protected $user; } class Roles { /**** * @ORM\OneToMany(targetEntity="PNC\PermissionsBundle\Entity\UserRoles", mappedBy="role", cascade={"persist", "remove"}) */ protected $usersRole; } ``` I need to insert into the UserRoles Entity. I only have $user as object but $role as id. ``` java $user_roles = new UserRoles(); $role = $em->getRepository('PNCPermissionsBundle:Roles')->findRoleByID($id); $user_roles->setRole($role); $user_roles->setUser($user); $user_roles->setIsPrimary(false); $em->persist($user_roles); $em->flush(); ``` and the repository function ``` java public function findRoleByID($role_id){ return $this->createQueryBuilder("r") ->select("r.id") ->where("r.id = :role_id") ->setParameter(":role*id", $role*id) ->getQuery() ->getOneOrNullResult(); } ``` what i understand is that $roles is now behave as an integer, but it should be an object of Roles Entity. How can id do this in my Scenario....?
admin added the Bug label 2026-01-22 14:51:04 +01:00
admin closed this issue 2026-01-22 14:51:06 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#4871