John Davidson

php - Symfony $this->getUser() without doctrine associations (OneToMany)

0 comments
Message:


In Symfony, we can get current logged-in user data using $this->getUser(), but my problem is when I access this statement, I am getting all the user-associated data set. which has OneToMany relationships with another entity, and it has a lot of data.


Example:


User Entity


`


class User implements UserInterface
{
/**
* @var string
* @ORM\Id
* @ORM\Column(type="string", length=10)
*
*/
protected $id;

/**
* @var string
* @ORM\Column(type="string")
*/
protected $email;


/**
* @var array
* @ORM\Column(type="json")
*/
protected $roles;


/**
* One User has Many Posts.
* @ORM\OneToMany(targetEntity="App\Entity\Post", mappedBy="user", fetch="LAZY")
*
*
*/
private Collection $posts;

`


Post Entity


`


class Post
{
/**
* @var string
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Column(type="integer", length=11)
*/
private $id;



/**
* Many posts have one user.
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="post", fetch="EXTRA_LAZY")
* @ORM\JoinColumn(name="userId", referencedColumnName="id")
*/
private $user;

`


I am looking to get rid of the user-associated data set or limit the associated data set to limit 1.


Thank you for the help in advance. :)



My Answer:
In Symfony, you can access properties and methods of an object using the `$this` keyword. For example, if you have an object called `$user` and you want to access a property called `name`, you can do so like this:

php
$user->name;


Similarly, if you want to call a method called `save` on the `$user` object, you can do so like this:

php
$user->save();


Remember that you can only use the `$this` keyword inside a class to refer to the current object instance.

Rate this post

3 of 5 based on 8821 votes

Comments




© 2024 Hayatsk.info - Personal Blogs Platform. All Rights Reserved.
Create blog  |  Privacy Policy  |  Terms & Conditions  |  Contact Us