我想使用Doctrine架构将MySQL字段从文本更新为longtext。
现在我的代码是这样的:
/**
*@var string
*@ORM\Column(name="head_fa", type="string", length=1000, nullable=true)
*/
private $head_fa;
/**
*@var string
*@ORM\Column(name="head_en", type="string", length=1000, nullable=true)
*/
private $head_en;
/**
*@var string
*@ORM\Column(name="body_fa", type="text", length=1000, nullable=true)
*/
private $body_fa;
/**
*@var string
*@ORM\Column(name="body_en", type="text", length=1000, nullable=true)
*/
private $body_en;
问题是我将此字段更改为此代码
/**
*@var string
*@ORM\Column(name="head_fa", type="string", length=1000, nullable=true)
*/
private $head_fa;
/**
*@var string
*@ORM\Column(name="head_en", type="string", length=1000, nullable=true)
*/
private $head_en;
/**
*@var string
*@ORM\Column(name="body_fa", type="text", nullable=true)
*/
private $body_fa;
/**
*@var string
*@ORM\Column(name="body_en", type="text", nullable=true)
*/
private $body_en;
并运行" php app / console doctrine:schema:update --force"在控制台上命令它说"无需更新 - 您的数据库已经与当前实体元数据同步。"如何在mysql数据库上将此字段更改为longtext。
我在项目的不同部分做同样的事情。 这是代码
/**
* @ORM\Column(name="body", type="text", nullable=true)
*/
protected $body;
并执行" php app / console doctrine:schema:update --force"终端上的命令此字段在MySQL数据库上更改为longtext。
答案 0 :(得分:8)
我遇到了同样的问题。我在引用此页面后找到了一个解决方案: http://doctrine-dbal.readthedocs.org/en/latest/reference/types.html
指定文本字段的长度将具有在MySQL中创建的正确类型。例如:length = 65535
见这里:http://doctrine-dbal.readthedocs.org/en/latest/reference/types.html#id100
256到65535之间的长度,使用" text"数据库中的字段。
答案 1 :(得分:0)
对于MySql DB上具有Doctrine Entity字段(带有验证)的symfony 4.2声明有效
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
您的班级名称
/**
* @var string
* @ORM\Column(type="text", length=65535)
* @Assert\NotBlank(message="your message")
* @Assert\Length(
* max=65535,
* maxMessage="your message"
* )
*/
protected $docContent;
如果您需要更多的文本空间(使用CKeditor作为文本输入,而不是仅文本,则需要更多的html标记字符),则可以创建附件类并通过多对多的链接进行链接,并将大内容散布到单独的段落中。