当我运行var converted = model.ToDictionary(kv => kv.Key, kv => SomeType.FromDynamic(kv.Value));
时,我有一个与我没有更改过的表和实体相关的未执行迁移。
这是生成的SQL:
doctrine:migrations:diff
这是第一次映射实体和创建表时生成的原始SQL:
ALTER TABLE crmpicco_course_guide_row CHANGE courses courses
LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:array)\'
我的学说映射:
courses LONGTEXT DEFAULT NULL
我的实体:
courses:
type: array
nullable: true
为什么要添加评论,是否有办法阻止在/**
* @var array
*/
protected $courses = array();
/**
* {@inheritdoc}
*/
public function getCourses()
{
return $this->courses;
}
/**
* @param array $courses
*/
public function setCourses(array $courses)
{
$this->courses = $courses;
}
期间出现该评论?
答案 0 :(得分:4)
评论已添加because of this method:
<?php
namespace My\DBAL\Types;
/**
* Overwrite array type to prevent comment hint
*/
class ArrayType extends \Doctrine\DBAL\Types\ArrayType
{
/**
* {@inheritdoc}
*/
public function requiresSQLCommentHint(AbstractPlatform $platform)
{
return false;
}
}
您可以覆盖现有的类并使用返回false的自定义类:
'doctrine' => array(
// ...other config
'configuration' => array(
'orm_default' => array(
'types' => array(
'array' => 'My\DBAL\Types\ArrayType'
)
)
)
)
按如下方式注册您的自定义类型:
SELECT p.*
, d.*
FROM wp_posts p
LEFT
JOIN wp_esp_datetime d
ON d.evt_id = p.id
LEFT
JOIN wp_term_relationships r
ON r.object_id = p.id
AND r.term_taxonomy_id = 3
WHERE term_taxonomy_id IS NULL;