Symfony 2 - 使用表单时未设置 Sluggable
Posted
技术标签:
【中文标题】Symfony 2 - 使用表单时未设置 Sluggable【英文标题】:Symfony 2 - Sluggable not set when using form 【发布时间】:2012-07-15 14:58:26 【问题描述】:我正在尝试使用 Doctrine Extensions 捆绑包中的 Sluggable 行为:
http://gediminasm.org/article/sluggable-behavior-extension-for-doctrine-2
我已经使用注解在我的实体中设置了一个sluggable字段,但是当我使用表单创建实例时没有设置值,这会导致以下错误:
SQLSTATE[23000]:违反完整性约束:1048 列“slug”不能为空
这是来自我的控制器的代码:
$form = $this->createFormBuilder($section)
->add('title', 'text')
->getForm();
if ($request->getMethod() == 'POST')
$form->bindRequest($request);
if ($form->isValid())
$em = $this->getDoctrine()->getEntityManager();
$em->persist($section);
$em->flush();
if (empty($id))
return $this->redirect($this->generateUrl('ContentBundle_section_new'));
else
return $this->redirect($this->generateUrl('ContentBundle_section_edit', array('id' => $id)));
以及Entity类中的sluggable字段定义:
/**
* @Gedmo\Slug(fields="title")
* @ORM\Column(length=128, unique=true)
*/
private $slug;
如果我将 slug 字段添加到表单构建器并手动设置一个值,它可以正常工作,但显然我不想搞砸这个。
谁能帮忙?
谢谢
【问题讨论】:
你有没有:使用Gedmo\Mapping\Annotation作为Gedmo;在实体类中? 是的。该实体也(成功地)使用了树扩展。 【参考方案1】:知道了。
我忘记在 config.yml 文件中添加以下行:
sluggable:是的
所以它应该是这样的:
stof_doctrine_extensions:
default_locale: en
translation_fallback: true
orm:
default:
tree: true
timestampable: true
sluggable: true
【讨论】:
thx,一直在寻找这个答案......在上一个项目中,我的同事做了这个,我无法弄清楚我做错了什么...... 确保你把它放在“stof_doctrine_extensions”而不是“doctrine”下,因为我花了一段时间才看到我的错误 我遇到了同样的问题,我添加了这些配置,但我得到了这个错误:There is no extension able to load the configuration for "stof_doctrine_extensions"
。谁能帮帮我?以上是关于Symfony 2 - 使用表单时未设置 Sluggable的主要内容,如果未能解决你的问题,请参考以下文章
直接访问登录表单时未设置会话 cookie,导致 CSRF 令牌无效