1
은 무엇 난 후 것은 DQL에서 다음 SQL 쿼리이 SQL을 DQL로 작성하는 방법은 무엇입니까?
SELECT p.*
FROM player p
WHERE CONCAT(p.first_name, ' ', p.last_name) = ?
입니다. 내가 지금까지 가지고있는 것은
$qb->add('select', 'p')
->add('from', 'VNNCoreBundle:Player p')
->add('where', $qb->expr()->eq(
$qb->expr()->concat('p.firstName', $qb->expr()->concat(' ', 'p.lastName')),
':name'
))
->setParameters(array('name' => $name));
이다.하지만 그건 틀린 문제입니다.
나는 항상 네이티브 SQL로 내 레코드의 ID를 얻을 수 있다는 것을 알고 있으며, Doctrine으로 레코드를 얻으려면 findOneById()
을 수행하십시오. 한편으로는, 그 일을하는 데는 괴롭 히거나 해킹하는 것처럼 느껴진다. 반면에, DQL이 형성되지 않기 때문에 직선 SQL에서 간단한 쿼리가 될 일을하기 위해 DQL에서하는 일이 멍청하다고 느낀다. 매우 우아합니다. 어쨌든, 나는이 많은 시간을 그것에 넣었으며, 이제는 DQL에 올바른 방법이 무엇인지 궁금합니다.