Doctrine没有在数据库中添加新实体

时间:2016-10-25 17:27:07

标签: symfony doctrine-orm

我一直想知道我的代码可能出了什么问题,因为Doctrine2没有在数据库中添加新实体。运行后

  

doctrine:schema:update --force

我已经回复了以下内容:

  

doctrine:schema:update --dump-sql   无需更新 - 您的数据库已与当前实体元数据同步。   doctrine:schema:update --force   无需更新 - 您的数据库已与当前实体元数据保持同步。

这是我的新实体:

<?php

namespace MainBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Distributor
 *
 * @ORM\Table(name="distributor")
 * @ORM\Entity(repositoryClass="MainBundle\Repository\DistributorRepository")
 */
class Distributor
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="company_name", type="string", length=255, nullable=true, unique=true)
     */
    private $companyName;

    /**
     * @var string
     *
     * @ORM\Column(name="contact_name", type="string")
     */
    private $contactName;


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

    /**
     * @var string
     *
     * @ORM\Column(name="phone", type="string", length=14, nullable=true, unique=true)
     */
    private $phone;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="date", type="datetime")
     */
    private $date;

    /**
     * @var string
     *
     * @ORM\Column(name="message", type="text")
     */
    private $message;


    /**
     * Get id
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set companyName
     *
     * @param string $companyName
     *
     * @return Distributor
     */
    public function setCompanyName($companyName)
    {
        $this->companyName = $companyName;

        return $this;
    }

    /**
     * Get companyName
     *
     * @return string
     */
    public function getCompanyName()
    {
        return $this->companyName;
    }

    /**
     * Set contactName
     *
     * @param string $contactName
     *
     * @return Distributor
     */
    public function setContactName($contactName)
    {
        $this->contactName = $contactName;

        return $this;
    }

    /**
     * Get contactName
     *
     * @return string
     */
    public function getContactName()
    {
        return $this->contactName;
    }


    /**
     * Set email
     *
     * @param string $email
     *
     * @return Distributor
     */
    public function setEmail($email)
    {
        $this->email = $email;

        return $this;
    }

    /**
     * Get email
     *
     * @return string
     */
    public function getEmail()
    {
        return $this->email;
    }

    /**
     * Set phone
     *
     * @param string $phone
     *
     * @return Distributor
     */
    public function setPhone($phone)
    {
        $this->phone = $phone;

        return $this;
    }

    /**
     * Get phone
     *
     * @return string
     */
    public function getPhone()
    {
        return $this->phone;
    }

    /**
     * Set date
     *
     * @param \DateTime $date
     *
     * @return Distributor
     */
    public function setDate($date)
    {
        $this->date = $date;

        return $this;
    }

    /**
     * Get date
     *
     * @return \DateTime
     */
    public function getDate()
    {
        return $this->date;
    }

    /**
     * Set message
     *
     * @param string $message
     *
     * @return Distributor
     */
    public function setMessage($message)
    {
        $this->message = $message;

        return $this;
    }

    /**
     * Get message
     *
     * @return string
     */
    public function getMessage()
    {
        return $this->message;
    }
}

以下是我的文件夹的组织方式:

enter image description here

有什么建议吗?提前谢谢。

以下是我项目中的学说配置:

enter image description here

2 个答案:

答案 0 :(得分:0)

我认为这条线需要像这样改变:

@ORM\Entity(repositoryClass="MainBundle\Entity\DistributorRepository")

还要确保您确实创建了文件:src/MainBundle/Entity/DistributorRepository.php。请注意,路径包含Entity而不是Repository!另外,请确保存在这些文件夹。

以下是参考文档: http://symfony.com/doc/current/doctrine/repository.html

答案 1 :(得分:0)

在我尝试了很多东西之后,我能够解决这个问题。我相信有效的提示是添加文件Resources / config / doctrine / Distributor.orm.yml。现在命令

  

doctrine:schema:update --force

现在允许我在数据库中添加表“distributor”。谢谢大家的意见。