Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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/4/oop/2.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 symfony 4中的模型转换器和预期的表单视图数据不匹配_Php_Symfony - Fatal编程技术网

Php symfony 4中的模型转换器和预期的表单视图数据不匹配

Php symfony 4中的模型转换器和预期的表单视图数据不匹配,php,symfony,Php,Symfony,我在symfony4中创建表单类型 但是,当我尝试查看表单时,出现以下错误: 表单的视图数据应该是类的实例 App\Entity\Property,但它是类的实例 应用程序\控制器\属性控制器。您可以通过设置 将“data_class”选项设置为null或通过添加 将类App\Controller\PropertyController的实例转换为 App\Entity\Property的实例 //src/Form/PropertyType.php 我不允许发表评论,所以这必须是一个答案 edit

我在symfony4中创建表单类型 但是,当我尝试查看表单时,出现以下错误:

表单的视图数据应该是类的实例 App\Entity\Property,但它是类的实例 应用程序\控制器\属性控制器。您可以通过设置 将“data_class”选项设置为null或通过添加 将类App\Controller\PropertyController的实例转换为 App\Entity\Property的实例

//src/Form/PropertyType.php

我不允许发表评论,所以这必须是一个答案

edit()函数中的代码正常,但不应将另一个控制器作为参数传递。 事实上,在PropertyController中,您应该使用:

$response = $this->forward('App\Controller\AdminPropertyController::edit', [
        // your array of parameters goes here
    ]);

return $response;
就是这样-不要将控制器用作参数,只需将其转发到专用函数即可。这将确保他们获得一个包含所有必需参数的请求对象。 祝你好运,伙计-真的是认真的。

公共函数编辑(PropertyController$property)是主要问题。
$response = $this->forward('App\Controller\AdminPropertyController::edit', [
        // your array of parameters goes here
    ]);

return $response;