При изучении аналогичной проблемы я наткнулся на этот пример :
---
User:
columns:
...
attributes:
export: all
validate: true
Применение того же принципа с атрибутом coll_key
дает следующее:
User:
columns:
...
attributes:
coll_key: username
После сборки мы можем проверить, что атрибут был принят:
$this->setAttribute(Doctrine_Core::ATTR_COLL_KEY, 'username');
Однако есть одна оговорка. Вы должны явно создать столбец, который хотите использовать, иначе Doctrine выдаст ошибку во время процесса сборки:
User:
actAs:
Sluggable: ~
columns:
...
attributes:
coll_key: slug
$ symfony doctrine:build --all --no-confirmation
>> doctrine Dropping "doctrine" database
>> doctrine Creating "dev" environment "doctrine" database
>> doctrine generating model classes
>> file+ /tmp/doctrine_schema_60681.yml
...
>> doctrine generating form classes
Couldn't set collection key attribute. No such field 'slug'.
Чтобы вышеперечисленное сработало, вам нужно явно указать столбец slug
, хотя шаблон Sluggable
обычно создает его автоматически:
User:
actAs:
Sluggable: ~
columns:
...
slug:
type: string(50)
unique: true
attributes:
coll_key: slug