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
Doctrine orm Symfony 2按用户id更新相关表_Doctrine Orm_Symfony - Fatal编程技术网

Doctrine orm Symfony 2按用户id更新相关表

Doctrine orm Symfony 2按用户id更新相关表,doctrine-orm,symfony,Doctrine Orm,Symfony,早上有点脑残。与symfony2混在一起,我无法解决如何通过用户id更新表。例如:我有一个在注册时创建的带有用户id的配置文件表,因此除了用户id之外,我还有一个空表。我想更新属于登录用户的配置文件表行。我有一对一的关系和一个getUser方法??我可以得到当前登录用户的id,只是不知道更新相关表格 考虑到您的信息,我假设用户是所有者。我不知道您是否将配置文件设置为持久化用户 if (is_null($user->getProfile()) { $profile = new \Foo\

早上有点脑残。与symfony2混在一起,我无法解决如何通过用户id更新表。例如:我有一个在注册时创建的带有用户id的配置文件表,因此除了用户id之外,我还有一个空表。我想更新属于登录用户的配置文件表行。我有一对一的关系和一个getUser方法??我可以得到当前登录用户的id,只是不知道更新相关表格

考虑到您的信息,我假设用户是所有者。我不知道您是否将配置文件设置为持久化用户

if (is_null($user->getProfile()) {
  $profile = new \Foo\BarBundle\Entity\Profile();
  $em->persist($profile);
  $user->setProfile($profile);
} else $profile = $user->getProfile();

$profile->setBarBaz('barbaz');
$profile->setFooBaz('foobaz');
$em->flush();
那好吗? 或者DQL我没有这样做,可能有语法错误:

$qb = $em->createQueryBuilder();
$result = $qb->update('Foo\BarBundle\Entity\Profile', 'p')
  ->set('barBaz', 'barbaz')
  ->set('fooBaz', 'foobaz')
  ->where('p.user_id = ?1')->setParameter(1, $user->getId())
  ->getQuery()
  ->getResult();