我对教义phone_number
类型有一种非常奇怪的行为。这是我的Provider类:
class Provider {
/**
* @var PhoneNumber
*
* @ORM\Column(name="phone", type="phone_number", nullable=true)
* @Serializer\Expose()
*/
private $phone;
}
非常简单。然后我进行了迁移:
$this->addSql('CREATE SEQUENCE provider_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE TABLE provider (id INT NOT NULL, name VARCHAR(255) NOT NULL, description TEXT DEFAULT NULL, phone VARCHAR(35) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, image_name VARCHAR(255) DEFAULT NULL, image_updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
但在那之后,当我运行php bin/console doctrine:schema:update --dump-sql
时,我会继续抛弃这些行:
ALTER TABLE provider ALTER phone TYPE VARCHAR(35);
ALTER TABLE provider ALTER phone DROP DEFAULT;
ALTER TABLE provider ALTER phone TYPE VARCHAR(35);
即使我做schema:update
,我也会在下一次运行时使用它们。我考虑回去注释一个字符串(35)并使用它,但是我的User
实体使用相同的注释完美地工作,有点奇怪。
以前有人遇到这种情况吗?