【问题标题】:Symfony2 Catchable Fatal Error: Argument 1 passed to entity Catchable Fatal Error: Argument 1 passed to entitySymfony2 可捕获的致命错误:参数 1 传递给实体 可捕获的致命错误:参数 1 传递给实体
【发布时间】:2015-06-17 22:04:47
【问题描述】:

我遇到了这个错误,我被困了好几个小时

Catchable Fatal Error: Argument 1 passed to Thinking\ThinkBundle\Entity\InYourMind::setThinkFriend() must be an instance of Thinking\ThinkBundle\Entity\InYourMindFriend, array given, called in /var/www/html/thinkroulette/vars/vendor/symfony/symfony/src/Symfony/Component/PropertyAccess/PropertyAccessor.php on line 410 and defined 

我搜索了这个问题,出现了很多结果,但我无法解决这个问题。

我正在尝试将两个实体整合到一种形式中,我从这篇文章中得到了我的想法 Create 2 different entities with same form in Symfony 2

可能这很愚蠢,但我什至无法理解错误。 :(

以下主要形式的片段

//InYourMindType.php
    class InYourMindType extends AbstractType
    {
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder->add('thinkFriend', new InYourMindFriendType)
        //...

这是“嵌入式”表单:

//InYourMindDriendType  
class InYourMindFriendType extends AbstractType
    {
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder->add('email', 'email', array(
                'label' => 'label_think_userEmail',
                'required' => false,
                'attr' => array(
                    'title' => 'label_think_userEmail',
                    'class' => 'form-control'
                )
            ));
        }
    public function getName()
    {
        return 'thinkFriend';
    }

调用主窗体的树枝(然后是嵌入的树枝)

<div class="form-group">
    {{ form_label(t_form.title) }}
    {{ form_widget(t_form.title) }}
    {{ form_errors(t_form.title) }}
</div>
<div class="form-group">
    {{ form_label(t_form.thinkFriend.email) }}
    {{ form_widget(t_form.thinkFriend.email) }}
    {{ form_errors(t_form.thinkFriend.email) }}

这些表单属于两个不同的实体,分别通过多对一和一对多的关系连接。

如果您需要我发布实体,请询问。

非常感谢

【问题讨论】:

    标签: php forms symfony entity symfony-2.6


    【解决方案1】:

    为您的 InYourMindFriendType 设置 data_class 选项

    结帐http://symfony.com/doc/current/reference/forms/types/form.html#data-class

    【讨论】:

    • 非常感谢!!它有效,只是另一个问题。第二种形式 InYourMindFriendType 中的字段不是强制性的。如果我不填写任何数据,它会拉出一个错误,指出它不能为空。如果它为空,则不会保存到表中(与该实体相关):我该怎么做? :)
    • 您的意思是 InYourMindFriendType 中的“电子邮件”字段。如果是,您应该注意到选项 'required' => false 仅禁用 HTML5 'required' 属性,如果它在 'email' 为空时抛出错误,则可能在您的实体声明中有一个必需的约束
    猜你喜欢
    • 2012-03-13
    • 2014-11-11
    • 1970-01-01
    • 2018-01-21
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 2013-11-23
    相关资源
    最近更新 更多