来自Symfony的错误迁移文件

时间:2019-12-06 21:22:37

标签: symfony doctrine

Symfony刚使我有些奇怪。 我要添加与现有Article实体具有ManyToOne关系的Picture实体。向导给了我那些修改过的实体:

#App/Entity/Picture.php


 /**
 * @ORM\Entity(repositoryClass="App\Repository\PictureRepository")
 */
class Picture
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $adress;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\article", inversedBy="pictures")
     */
    private $article;

#App/Entity/Article.php
/**
 * @ORM\Entity(repositoryClass="App\Repository\ArticleRepository")
 */
class Article
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $Title;

    /**
     * @ORM\Column(type="text", nullable=true)
     */
    private $Text;

    /**
     * @ORM\ManyToMany(targetEntity="App\Entity\Category", mappedBy="Article")
     */
    private $categories;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Picture", mappedBy="article")
     */
    private $pictures;

这些对我来说似乎很好,但是进行迁移时,不会在图片表中创建“ article_id”字段。这是生成的迁移代码:

 $this->addSql('CREATE TABLE picture (id INT AUTO_INCREMENT NOT NULL, adress VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');

很明显,没有存储任何关系,因此我无法在代码中使用此关系。

我想念什么吗? 感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

Alleluiah!找到了这个。

似乎我刚才打错了字,Symfony缓存即使纠正也保留了它。

只需要:

php bin/console doctrine:cache:clear-result
php bin/console doctrine:cache:clear-query
php bin/console doctrine:cache:clear-metadata

然后进行新的迁移,一切都很好。