方法“;用户名";对于“对象”;Symfony\Component\Form\FormView“;在第11行的admin/user/_form.html.twig中不存在

方法“;用户名";对于“对象”;Symfony\Component\Form\FormView“;在第11行的admin/user/_form.html.twig中不存在,symfony,symfony-forms,Symfony,Symfony Forms,几个星期以来我一直有问题。 我在谷歌和Symfony文档上搜索了很多,但没有找到解决方案 问题是我总是收到以下错误消息: 第11行的admin/user/_Form.html.twig中不存在对象“Symfony\Component\Form\FormView”的方法“username” 但不是针对每个表单类型 例如,我的字段实体没有问题。但我的用户或公司类型有这个问题。当我在twig中dump(form)时,一切都正常,我可以看到username之类的变量。它也显示在探查器中。我比较了有功能的

几个星期以来我一直有问题。 我在谷歌和Symfony文档上搜索了很多,但没有找到解决方案

问题是我总是收到以下错误消息:

第11行的admin/user/_Form.html.twig中不存在对象“Symfony\Component\Form\FormView”的方法“username”

但不是针对每个
表单类型

例如,我的字段实体没有问题。但我的用户或公司类型有这个问题。当我在twig中
dump(form)
时,一切都正常,我可以看到username之类的变量。它也显示在探查器中。我比较了有功能的和没有功能的。据我所知,他们是一模一样的

另一件奇怪的事情是,当我渲染整个表单时

通过
form\u行(form)
它正在运行。 使用
form\u行(form.username)
not

我正在使用Symfony 2.7.9

如果你现在还需要什么,请告诉我。 对不起,这是我第一次主动提出问题

提前谢谢你的帮助

致以最良好的祝愿, 凯文

编辑代码:

<?php

namespace ITGruber\HektMan\AdminBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

/**
* Defines the form used to create and manipulate machine posts.
*
* @author Kevin <office@it-gruber.com>>
*/
class JobType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('reply', 'entity', array(
                'class' => 'ITGruber\HektMan\AdminBundle\Entity\User',
                'choice_label' => 'username',
                'label' => 'label.reply_to'
            ))
            ->add( 'dueDate', 'date', array(
                'widget' => 'single_text',
                'label' => 'label.duedate',
            ))
            ->add('listed', null, array('label' => 'label.listed'))
            ->add('salary', 'money', array(
                'label' => 'label.salary',
                'grouping' => true,
                'mapped' => false,
            ))
            ->add('machines', 'entity', array(
                'class' => 'ITGruber\HektMan\AdminBundle\Entity\Machine',
                'choice_label' => 'name',
                'label' => 'label.machine',
                'expanded' => true,
                'multiple' => true,
            ))
        ;
    }

    /**
     * @param OptionsResolver $resolver
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'ITGruber\HektMan\AdminBundle\Entity\Job',
        ));
    }

    /**
     * @return string
     */
    public function getName()
    {
        return 'app_job';
    }
}
该选项必须是可调用函数或与
作业上的
实体相关的字符串。您的实体没有名为
getUsername()
的函数,也没有
$username
的公共属性

假设您的
用户
实体有一个
getUsername()
函数,您可以向
作业
实体添加以下函数:

public function getUsername()
{
    return ($this->user) ? $this->user->getUsername() : null;
}
选项必须是可调用函数或与
作业上的
实体相关的字符串。您的实体没有名为
getUsername()
的函数,也没有
$username
的公共属性

假设您的
用户
实体有一个
getUsername()
函数,您可以向
作业
实体添加以下函数:

public function getUsername()
{
    return ($this->user) ? $this->user->getUsername() : null;
}

谢谢大家的帮助,我刚刚找到了问题的答案。 问题是,在控制器中,我从同一个
\u form.html.twig
模板渲染
DeleteForm
EditForm

当我有一个用于删除的模板时,使用
form\u小部件(form)

而一个
\u表单
的行是分开的,一切都按预期进行


希望你能从我的失败中吸取教训。

谢谢你的帮助,我刚刚找到了问题的答案。 问题是,在控制器中,我从同一个
\u form.html.twig
模板渲染
DeleteForm
EditForm

当我有一个用于删除的模板时,使用
form\u小部件(form)

而一个
\u表单
的行是分开的,一切都按预期进行


希望你能从我的失败中吸取教训。

添加了你想要的代码。.添加了你想要的代码。.谢谢你建议的方法,我只是发布了错误的实体;-)我的用户拥有所有这些方法。我回答了我自己的问题,只是碰巧找到了答案。谢谢你的帮助!没问题,很高兴你明白了!谢谢,我有你建议的方法,我只是发布了错误的实体;-)我的用户拥有所有这些方法。我回答了我自己的问题,只是碰巧找到了答案。谢谢你的帮助!没问题,很高兴你明白了!
{{ form_start(form) }}

   {{ form_errors(form) }}
   {{ form_row(form.listed) }}

    <input type="submit" value="{{ button_label|default('action.create'|trans) }}"
           class="{{ button_css|default("btn btn-primary") }}" />

    {% if include_back_to_home_link is not defined or include_back_to_home_link == true %}
        <a href="{{ path('admin_job_index') }}" class="btn btn-link">
            {{ 'action.back'|trans }}
        </a>
    {% endif %}
{{ form_end(form) }}

{#{% form_theme form 'form/checkbox.html.twig' %}#}
{#
    {{ form_row(form.reply) }}
    {{ form_row(form.dueDate) }}


    <div>
        {{ form_widget(form.listed) }}
        {{ form_label(form.listed) }}
        {{ form_errors(form.listed) }}
    </div>
    {{ form_row(form.salary) }}
    {{ form_row(form.machines) }}

#}
public function getUsername()
{
    return ($this->user) ? $this->user->getUsername() : null;
}