Php 在Symfony 3.1中更新失败
我正在与Symfony 3.1中名为Php 在Symfony 3.1中更新失败,php,symfony,orm,doctrine-orm,Php,Symfony,Orm,Doctrine Orm,我正在与Symfony 3.1中名为Profile和Blog的两个实体合作。在这里,这两个实体构成一对多关系。一个档案可以创建多个博客,而博客属于一个档案。因此,要从博客访问配置文件信息,我想在博客表中创建一个外键。我已经在代码中这样做了,但主要的问题是,当我编写这个命令--$php-bin/console-doctor:schema:update--dump-sql时,它显示 “无需更新-您的数据库已与当前实体元数据同步”。任何人都可以帮我。。。这里我提供了我所做的两个类 //Profile.
Profile
和Blog
的两个实体合作。在这里,这两个实体构成一对多关系。一个档案
可以创建多个博客
,而博客
属于一个档案
。因此,要从博客
访问配置文件信息,我想在博客表
中创建一个外键
。我已经在代码中这样做了,但主要的问题是,当我编写这个命令--$php-bin/console-doctor:schema:update--dump-sql
时,它显示
“无需更新-您的数据库已与当前实体元数据同步”。任何人都可以帮我。。。这里我提供了我所做的两个类
//Profile.php
}
实体的注释是错误的。它们应该是这样的:
//Profile.php
<?php
namespace AppBundle\Entity\Profile
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
*/
class Profile {
/**
* @var int
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Blog", mappedBy="product_id")
*/
private $blogs;
...
}
首先,我在终端中运行此命令
$ php bin/console doctrine:migrations:generate
然后我在up()
方法中编写代码。下面是我的代码
class Version20160831074611 extends AbstractMigration
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$blogTable = $schema->getTable('blog');
$product1Table =$schema->getTable('product1');
if(!$blogTable->hasColumn('product1_id'))
{
$blogTable->addColumn('product1_id','integer')->setNotnull(false);
}
if(!$blogTable->hasIndex('FK_product_idx'))
{
$blogTable->addIndex(['product1_id'],'FK_product_idx');
}
if(!$blogTable->hasForeignKey('FK_product1'))
{
$blogTable->addForeignKeyConstraint($product1Table,
['product1_id'],
['id'],
['OnUpdate'=>'CASCADE','OnDelete'=>'CASCADE','FK_product1']
);
}
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
// this down() migration is auto-generated, please modify it to your needs
}
}
最后,我在终端中运行此命令并完成
$ php bin/console doctrine:migrations:migrate 20160831074611
我认为,您忘记了实体的
@ORM\Entity()
注释。尝试这是我的要点。我已经试过了,但没有其他办法……谢谢奥斯卡·佩雷斯。我已经这样做了,但失败了。问题是Symfony 3.1不支持这种格式。此版本支持迁移公式。我已经成功地生成了新的迁移类。我已经使用了up()方法来完成这项任务。请用正确的解决方案为您的问题添加一个答案,这样我们都可以将其作为将来的参考。我大约在8分钟前回答了这个问题!谢谢你
$ php bin/console doctrine:migrations:generate
class Version20160831074611 extends AbstractMigration
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$blogTable = $schema->getTable('blog');
$product1Table =$schema->getTable('product1');
if(!$blogTable->hasColumn('product1_id'))
{
$blogTable->addColumn('product1_id','integer')->setNotnull(false);
}
if(!$blogTable->hasIndex('FK_product_idx'))
{
$blogTable->addIndex(['product1_id'],'FK_product_idx');
}
if(!$blogTable->hasForeignKey('FK_product1'))
{
$blogTable->addForeignKeyConstraint($product1Table,
['product1_id'],
['id'],
['OnUpdate'=>'CASCADE','OnDelete'=>'CASCADE','FK_product1']
);
}
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
// this down() migration is auto-generated, please modify it to your needs
}
}
$ php bin/console doctrine:migrations:migrate 20160831074611