【发布时间】:2018-05-18 08:32:54
【问题描述】:
我是 Symfony 的新手,我正在尝试做一个基本的左连接,以根据 Jobs 表中的 client_id 拉入客户端名称。
App\Entity\Jobs:
class Jobs
{
/**
* @ORM\Column(type="integer")
* @ORM\ManyToOne(targetEntity="App\Entity\Clients", inversedBy="jobs")
* @ORM\JoinColumn(nullable=false)
*/
private $client;
应该加入App\Entity\Clients:
class Clients
{
/**
* @ORM\Column(type="integer")
* @ORM\OneToMany(targetEntity="App\Entity\Jobs", mappedBy="client")
*/
private $jobs;
在我的App\Repository\JobsRepository 类中,以下函数正在尝试左连接:
use App\Entity\Jobs;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Symfony\Bridge\Doctrine\RegistryInterface;
class JobsRepository extends ServiceEntityRepository
{
public function __construct(RegistryInterface $registry)
{
parent::__construct($registry, Jobs::class);
}
public function allWithClientName()
{
return $this->createQueryBuilder('job')
->leftJoin('job.client_id', 'client')
->getQuery()
->execute();
}
}
我收到的错误是:
[Semantical Error] line 0, col 60 near 'client': Error: Class App\Entity\Jobs has no association named client_id
有什么想法吗?就我有限的理解而言,注释应该形成所需的连接。
【问题讨论】:
-
@k0pernikus 是的。解决问题后,它似乎与以下内容重复:https://stackoverflow.com/questions/6899335/doctrine-class-has-no-association-named您如何将其标记为这样?
-
您可以投票关闭它并将其标记为重复。然后由社区决定关闭或保持开放。作为 OP,您可以选择接受以“是的,这解决了我的问题”的投票结束,并且它将优先于社区投票。
-
太棒了。都整理好了。谢谢你:)
-
不客气 :)
标签: symfony doctrine one-to-many many-to-one symfony4