Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表格';s视图数据应为另一个类的实例创建另一个实体的窗体实例时出错_Php_Symfony_Sylius - Fatal编程技术网

Php 表格';s视图数据应为另一个类的实例创建另一个实体的窗体实例时出错

Php 表格';s视图数据应为另一个类的实例创建另一个实体的窗体实例时出错,php,symfony,sylius,Php,Symfony,Sylius,尝试从另一个实体创建表单以传递到我的视图时,出现以下错误 在此上下文中,我有两个实体CourseGuide和CourseGuideRow,我想通过CourseGuideRowType的表单视图传递给我的视图-我该如何做 表单的视图数据应该是类的实例 CRMPicco\CourseBundle\Entity\CourseGuide,但是类的实例 CRMPicco\CourseBundle\Entity\CourseGuideRow。您可以避免此错误 通过将“data_class”选项设置为null

尝试从另一个实体创建表单以传递到我的视图时,出现以下错误

在此上下文中,我有两个实体
CourseGuide
CourseGuideRow
,我想通过
CourseGuideRowType
的表单视图传递给我的视图-我该如何做

表单的视图数据应该是类的实例 CRMPicco\CourseBundle\Entity\CourseGuide,但是类的实例 CRMPicco\CourseBundle\Entity\CourseGuideRow。您可以避免此错误 通过将“data_class”选项设置为null或添加视图 转换类实例的转换器 CRMPicco\CourseBundle\Entity\CourseGuideRow到的实例 CRMPicco\CourseBundle\Entity\CourseGuide

这是我的控制器:

// CourseGuideController.php
public function viewAction(Request $request)
{
    if (!$courseId = $request->get('id')) {
        throw new NotFoundHttpException('No Course ID provided in ' . __METHOD__);
    }

    $resource = $this->get('crmpicco.repository.course_guide_row')->createNew();
    $form     = $this->getForm($resource);

    // ...

}
我的Symfony FormBuilder类:

// CourseGuideRowType.php
use Sylius\Bundle\ResourceBundle\Form\Type\AbstractResourceType;
use Symfony\Component\Form\FormBuilderInterface;

class CourseGuideRowType extends AbstractResourceType
{
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('channel', 'crmpicco_channel_choice', array('data_class' => null))
            ->add('name', 'text')
            ->add('courses', 'text')
        ;
    }

    /**
     * @return string name
     */
    public function getName()
    {
        return 'crmpicco_course_guide_row';
    }
}
我尝试了别处提到的
data\u class=>null
建议,但没有效果

如果我像这样通过data_类:

$form     = $this->getForm($resource, array('data_class' => 'CRMPicco\CourseBundle\Entity\CourseGuideRow'));
然后我得到这个:

属性“translations”或其中一个方法 “getTranslations()”、“translations()”、“isTranslations()”, “hasTranslations()”、“\uuu get()”在类中存在并具有公共访问权限 “CRMPicco\CourseBundle\Entity\CourseGuideRow”


为什么会这样?有附加到
课程指南
实体的翻译,但没有附加到
CourseGuideRow

尝试在表单类型中添加此函数:

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'YourBundle\Entity\YourEntity',
    ));
}
不要忘记具体用途:

使用Symfony\Component\OptionsResolver\OptionsResolver

编辑

在本机Symfony中(使用表单组件):


尝试在FormType中添加此函数:

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'YourBundle\Entity\YourEntity',
    ));
}
不要忘记具体用途:

使用Symfony\Component\OptionsResolver\OptionsResolver

编辑

在本机Symfony中(使用表单组件):


尝试在FormType中添加此函数:

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'YourBundle\Entity\YourEntity',
    ));
}
不要忘记具体用途:

使用Symfony\Component\OptionsResolver\OptionsResolver

编辑

在本机Symfony中(使用表单组件):


尝试在FormType中添加此函数:

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'YourBundle\Entity\YourEntity',
    ));
}
不要忘记具体用途:

使用Symfony\Component\OptionsResolver\OptionsResolver

编辑

在本机Symfony中(使用表单组件):


谢谢,但是没有任何效果。我仍然看到相同的错误。是
crmpicco.repository.course\u guide\u row
在一个表单类型中返回getName()方法?不是,但我认为不应该是。我正在使用Sylius并在这里调用
getForm
方法。我已经用我最新的更改和新的错误消息更新了我的问题,这让我觉得其他地方有问题。事实上,我得到了更正-似乎我应该将表单名称传递给…但是传递给
createForm
。在本机Symfony中(带有表单组件):
$form=$this->createForm('name_of_your_form_type',the_entity_object);
和响应:
返回$this->render('your_template.html.twig',['form'=>$form->createView());
谢谢,但没有任何效果。我仍然看到相同的错误。是
crmpicco.repository.course\u guide\u行
返回getName()方法?它不是,但我不认为应该是。我正在使用Sylius并在此处调用
getForm
方法。我已使用最新的更改和新的错误消息更新了我的问题,这使我认为其他地方有问题。实际上,我得到了更正-似乎我应该传递表单名称通过…但改为
createForm
。在本机Symfony中(使用表单组件):
$Form=$this->createForm(\u表单类型的名称,\u实体\u对象);
和响应:
返回$this->render('your\u template.html.twig',['Form=>Form->$Form->createView())
谢谢,但没有任何效果。我仍然看到相同的错误。是
crmpicco.repository.course\u guide\u row
返回getName()方法?它不是,但我不认为应该是。我正在使用Sylius并在此处调用
getForm
方法。我已使用最新的更改和新的错误消息更新了我的问题,这使我认为其他地方有问题。实际上,我得到了更正-似乎我应该传递表单名称通过…但改为
createForm
。在本机Symfony中(使用表单组件):
$Form=$this->createForm(\u表单类型的名称,\u实体\u对象);
和响应:
返回$this->render('your\u template.html.twig',['Form=>Form->$Form->createView())
谢谢,但没有任何效果。我仍然看到相同的错误。是
crmpicco.repository.course\u guide\u row
返回getName()方法?它不是,但我不认为应该是。我正在使用Sylius并在此处调用
getForm
方法。我已使用最新的更改和新的错误消息更新了我的问题,这使我认为其他地方有问题。实际上,我得到了更正-似乎我应该传递表单名称通过…但改为
createForm
。在本机Symfony中(使用表单组件):
$Form=$this->createForm(\u表单类型的名称,\u实体\u对象);
和响应:
返回$this->render('your\u template.html.twig',['Form=>$Form->createView());