Doctrine 信条可以';不产生关系

Doctrine 信条可以';不产生关系,doctrine,symfony,Doctrine,Symfony,注意:在我询问之前,我确实做了一些搜索 我的问题是: 我有两个实体:一个是频道,另一个是插件,一个频道可以有很多插件,下面是代码 频道: use Gedmo\Mapping\Annotation as Gedmo; // gedmo annotations use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\Mapping as ORM; /** * Mikay\MikiBundle\Entity\Channe

注意:在我询问之前,我确实做了一些搜索

我的问题是:

我有两个实体:一个是频道,另一个是插件,一个频道可以有很多插件,下面是代码

频道:

use Gedmo\Mapping\Annotation as Gedmo; // gedmo annotations

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;

/**
 * Mikay\MikiBundle\Entity\Channel
 *
 * @ORM\Table(name="channels")
 * @ORM\Entity(repositoryClass="Mikay\MikiBundle\Entity\ChannelRepository")
 */
<?php
class Channel
{
  /**     
   * @ORM\OneToMany(targetEntity="Plugin", mappedBy="channel")
   */
  private $plugins;            
那么,问题是什么,可能是一些配置错误吗

编辑:

注: 不要加

@ORM\Column(name="channel_id", type="integer")

插件实体中的这种注释,或者它不会生成两个表之间的关系,这就是我的问题的原因。

您需要告诉doctrine这些是实体

/**
 * @ORM\Entity()
 */
class Channel
{
以下是一种验证条令是否可以看到您的实体的快速方法:

php app/console doctrine:mapping:info

你需要告诉条令,这些是实体

/**
 * @ORM\Entity()
 */
class Channel
{
以下是一种验证条令是否可以看到您的实体的快速方法:

php app/console doctrine:mapping:info

我再重复一遍不添加

@ORM\Column(name="channel_id", type="integer")

在我的例子中,引用其他实体的属性上的这种类型的注释是插件实体的通道属性,或者它不会生成两个表之间的关系,这就是我的问题的原因。

我将在这里再次重复不添加

@ORM\Column(name="channel_id", type="integer")

在我的例子中,引用其他实体的属性上的这种类型的注释是插件实体的通道属性,或者它不会生成两个表之间的关系,这就是我的问题的原因。

您可以删除JoinColumn声明,它是无用的。你凭什么说这种关系从未建立过?当您删除声明、更新架构、设置声明并运行
php应用程序/控制台原则:schema:update--dump sql
时会发生什么?谢谢,我的所有代码似乎都是正确的,dcontrine现在可以在表之间生成关系了。我将结束这个问题。是的,JoinColumn语句是不必要的。再次感谢。您只需要在拥有端指定关系,不需要反向端。您可以删除JoinColumn声明,它是无用的。你凭什么说这种关系从未建立过?当您删除声明、更新架构、设置声明并运行
php应用程序/控制台原则:schema:update--dump sql
时会发生什么?谢谢,我的所有代码似乎都是正确的,dcontrine现在可以在表之间生成关系了。我将结束这个问题。是的,JoinColumn语句是不必要的。再次感谢。您只需要在拥有方指定关系,反向方是不必要的。我有@ORM\Entity()声明,我将更新我的问题以添加此声明,我可以使用条令:mapping:info命令查看我的实体。我有@ORM\Entity()声明,我将更新我的问题以添加此声明,我可以使用doctor:mapping:info命令查看我的实体。