Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 获取用于访问条令存储库中数据的空值_Symfony_Doctrine Orm_Doctrine - Fatal编程技术网

Symfony 获取用于访问条令存储库中数据的空值

Symfony 获取用于访问条令存储库中数据的空值,symfony,doctrine-orm,doctrine,Symfony,Doctrine Orm,Doctrine,从FriendsRepo获取数据时,我通过id与Friends实体连接的用户实体的值为空 我也尝试过从UsersRepo访问数据,但没有成功 用户实体: class User implements UserInterface { /** * @var int * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /**

从FriendsRepo获取数据时,我通过id与Friends实体连接的用户实体的值为空

我也尝试过从UsersRepo访问数据,但没有成功

用户实体:

class User implements UserInterface
{
/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var string
 * @Assert\NotBlank()
 * @ORM\Column(name="email", type="string", length=20, unique=true)
 */
private $email;

/**
 * @var string
 * @Assert\NotBlank()
 * @ORM\Column(name="username", type="string", length=20, unique=true)
 */
private $username;

/**
 * @var string
 * @Assert\NotBlank()
 * @ORM\Column(name="password", type="string", length=255)
 */
private $password;


/**
 * @var string
 *
 * @ORM\Column(name="user_picture", type="string", nullable=true)
 *
 */
private $userPic;

/**
 * @var ArrayCollection
 *
 * @ORM\OneToMany(targetEntity="AppBundle\Entity\UserPosts", mappedBy="user")
 *
 *
 */

private $userPosts;

public function __construct()
{
    $this->userPosts = new ArrayCollection();
    $this->myfriends = new ArrayCollection();
    $this->friendof = new ArrayCollection();
}


/**
 * @var
 * @ORM\OneToMany(targetEntity="AppBundle\Entity\Friends", mappedBy="afriendof")
 */

private $friendof;
/**
 * @var
 * @ORM\OneToMany(targetEntity="AppBundle\Entity\Friends", mappedBy="friendsWithMe")
 */
private $myfriends;
 /**
 * @return User
 */
public function getFriendof()
{
    return $this->friendof;
}

/**
 * @param User $friendof
 */
public function setFriendof($friendof)
{
    $this->friendof = $friendof;
}

/**
 * @return User
 */
public function getMyfriends()
{
    return $this->myfriends;
}

/**
 * @param User $myfriends
 */
public function setMyfriends($myfriends)
{
    $this->myfriends = $myfriends;
}
}
友人实体:

class Friends
{

/**
 * @ORM\Id()
 * @ORM\ManyToOne(targetEntity="AppBundle\Entity\User", inversedBy="myfriends")
 * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
 */

private $friendsWithMe;


/**
 * @ORM\Id()
 * @ORM\ManyToOne(targetEntity="AppBundle\Entity\User", inversedBy="friendof")
 * @ORM\JoinColumn(name="friend_id", referencedColumnName="id", nullable=false)
 */

private $afriendof;

/**
 * @var integer
 *
 * @ORM\Column(name="status", type="smallint")
 */
private $status;



/**
 * @return User
 */
public function getFriendsWithMe()
{
    return $this->friendsWithMe;
}

/**
 * @param mixed $friendsWithMe
 */
public function setFriendsWithMe($friendsWithMe)
{
    $this->friendsWithMe = $friendsWithMe;
}

/**
 * @return User
 */
public function getAfriendof()
{
    return $this->afriendof;
}

/**
 * @param mixed $afriendof
 */
public function setAfriendof($afriendof)
{
    $this->afriendof = $afriendof;
}

/**
 * @return integer
 */
public function getStatus()
{
    return $this->status;
}

/**
 * @param integer $status
 */
public function setStatus($status)
{
    $this->status = $status;
}
}
我的朋友们:

public function personalFriends($userId){
    $em = $this->getEntityManager();
    $result = $em->createQuery('SELECT friends FROM AppBundle\Entity\Friends friends WHERE friends.friendsWithMe= :userId');
    $result->setParameter('userId', $userId);
    return $result->getResult();
}
我希望获得朋友的用户名、图片的数据,但除了id之外,我在每个数据块上都得到空值,我知道问题非常小,但我无法找到解决方案,因此请提供帮助(示例):


这是因为默认情况下启用了延迟加载。您需要显式地加入用户表

$result = $em->createQuery('SELECT friends, user FROM AppBundle\Entity\Friends friends JOIN AppBundle\Entity\User user WHERE friends.friendsWithMe= :userId');
这样,数据将立即被提取。否则,将在您第一次尝试访问数据时提取数据,即

$friend->getAFriendOf()->getEmail();

这是因为默认情况下启用了延迟加载。您需要显式地加入用户表

$result = $em->createQuery('SELECT friends, user FROM AppBundle\Entity\Friends friends JOIN AppBundle\Entity\User user WHERE friends.friendsWithMe= :userId');
这样,数据将立即被提取。否则,将在您第一次尝试访问数据时提取数据,即

$friend->getAFriendOf()->getEmail();

这似乎是一个“延迟加载”问题
+\uu已初始化\uuu:false
。你能把你调用存储库的地方和你试图访问“afrienfof”数据的地方的代码发送给我们吗?这似乎是一个“延迟加载”问题
+\uu初始化了\uuuuuuu:false
。你能给我们发送代码吗?你在哪里调用了存储库,在哪里尝试访问“afrienfof”dataSorry以获取转储问题,但在完成你告诉我的操作后,我与所有用户(包括好友数据)一起进入了我的数据数组。
WHERE
子句是加载所有用户的问题吗??如何更正查询以仅加载两个好友而不加载所有其他用户?很抱歉出现转储问题,但在执行了您告诉我的操作后,我在我的数据数组中获得了包括好友数据在内的所有用户。
WHERE
子句是加载所有用户的问题吗??如何更正查询以便只加载两个好友而不加载所有其他用户?