Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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 如何在表单中列出查询结果(EntityType)_Php_Symfony_Doctrine Orm_Symfony Forms_Query Builder - Fatal编程技术网

Php 如何在表单中列出查询结果(EntityType)

Php 如何在表单中列出查询结果(EntityType),php,symfony,doctrine-orm,symfony-forms,query-builder,Php,Symfony,Doctrine Orm,Symfony Forms,Query Builder,在我的项目中,我使用数据表(用户任务)来描述创建预订记录(预订表)的数据。在表单中,我尝试接收选择列表 运行时出现错误: 预期参数类型为“条令\ORM\QueryBuilder”,“数组”给定 为什么“数组”数据是错误的?什么变化 我的代码: 表格: 您应该返回querybuilder对象实例,而不是query\u builder参数的结果。因此,请按以下方式更改您的回购方法: /** * Function TaskUserListQuery * @return QueryBui

在我的项目中,我使用数据表(用户任务)来描述创建预订记录(预订表)的数据。在表单中,我尝试接收选择列表

运行时出现错误:
预期参数类型为“条令\ORM\QueryBuilder”,“数组”给定

为什么“数组”数据是错误的?什么变化

我的代码: 表格:


您应该返回querybuilder对象实例,而不是query\u builder参数的结果。因此,请按以下方式更改您的回购方法:

  /**
   * Function TaskUserListQuery
   * @return QueryBuilder
   */
  public function TaskUserListQuery( $userId )
  {
    return $this->createQueryBuilder( 't' )
      ->select(
        't.id',
        't.taskName'
      )
      ->orderBy( 't.id', 'ASC' )
      ->where( 't.userId = :par1' )
      ->setParameter( 'par1', $userId );
  }

希望此帮助您也不能调用
FormView
对象上的
handleRequest
方法

$tableForm = $this->createForm( 'AppBundle\Form\ReservationType',
    $reservation, ['userId' => $userId,]);
$form = $tableForm->createView(); // WTF ?
$form->handleRequest( $request );
任务库

public function TaskUserListQuery( $userId )
{
    return $this->createQueryBuilder( 't' )
        ->select('t') // in this way
        ->orderBy( 't.id', 'ASC' )
        ->where( 't.userId = :par1' )
        ->setParameter( 'par1', $userId );
}
在您使用selecting('t.id',…)时 QueryBuilder将返回普通数组

array:1 [▼
  0 => array:2 [▼
    "id" => 1
    "task_name" => "New Task"
  ]
]
但是
EntityType
需要一个对象数组,如

array:1 [▼
  0 => Task {#448 ▶}
]

最后,不要忘记在
buildForm
方法中添加选项
'choice\u label'=>'task\u name'

我将其替换为
@return QueryBuilder
,但仍然返回一个错误:类型为“条令\ORM\QueryBuilder”,“数组”的预期参数given@user23123仅更改docblock不会更改代码返回的内容。请仔细看看Matteo的答案是否正确。hi@user23123我还更改了方法的返回值,请查看答案的代码,可能您应该更改select方法中的参数,可能它需要整个对象。让我知道
public function TaskUserListQuery( $userId )
{
    return $this->createQueryBuilder( 't' )
        ->select('t') // in this way
        ->orderBy( 't.id', 'ASC' )
        ->where( 't.userId = :par1' )
        ->setParameter( 'par1', $userId );
}
array:1 [▼
  0 => array:2 [▼
    "id" => 1
    "task_name" => "New Task"
  ]
]
array:1 [▼
  0 => Task {#448 ▶}
]