如何在Doctrine2中使用带有数组IN参数的本机查询

Her*_*ert 6 php database doctrine-orm

我在教义中写了这个本机SQL

SELECT COUNT(DISTINCT t.int_task_type_id) as a_count
FROM tbl_xref_people_task t
WHERE t.bit_completed = true AND
      t.int_people_id = :peopleId AND
      t.int_task_type_id IN (:taskType)
Run Code Online (Sandbox Code Playgroud)

我必须在本机SQL中编写它,因为int_task_type_id是分层模型类中的鉴别器列.

问题是我无法做到以下几点:

$query->setParameter(':taskType', implode(', ',$taskType));
Run Code Online (Sandbox Code Playgroud)

或这个:

$query->setParameter(':taskType', $taskType, 'array');
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

sub*_*ito 0

我认为您可以使用以下方法轻松做到这一点:

$query->setParameter('taskType', $taskType);

Doctrine 将自动转换$taskType为正确的格式。