symfony - 通过 buildForm() 中的 $options 访问变量

标签 symfony

我想将 bool 值传递给我的 DogForm

$dogForm = new DogForm(null, array("has_cats" => $this->getUser()->hasCats()));

$form = $this->createForm($dogForm, $dog);

但是在我的 DogForm 中执行时:

if (!isset($options['has_cats'])) {
    throw new \Exception("Missing option has_cats, this option is mandatory");          
}

它总是给我这个错误。

所以我知道狗不应该养猫,但是,我的 has_cats 选项去了哪里

谢谢。

最佳答案

选项应该传递给 createForm() 方法,而不是传递给 DogForm 构造函数:

$form = $this->createForm(new DogForm(), $dog, array('has_cats' => $cats));

请注意,您还必须将“has_cats”添加到getDefaultOptions()

关于symfony - 通过 buildForm() 中的 $options 访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8700022/

相关文章:

php - 应用程序/控制台 sulu :security:user:create is working but sulu-login doesn't work

php - 使用 Symfony2 重载 bundle

php - Symfony 安全返回 401 响应而不是重定向

php - Symfony2 Twig 安全策略

symfony - 使用 Twig 从父模板访问子模板中的变量集

jquery - 模式中的 Symfony2 表单未处理

symfony - 教义 : Fetch "EAGER" and "Hydrate Array"

symfony - 获取 Twig 模板中的当前 URL?

symfony - 有没有更聪明的方法来禁用 Symfony2.1 中的 Doctrine2 过滤器?

symfony - 从 Twig 模板获取 cookie