Details
Description
http://www.doctrine-project.org/docs/orm/2.0/en/reference/dql-doctrine-query-language.html
Among others:
$query = $em->createQuery('SELECT u from ForumUser u WHERE (u.username = :name OR u.username = :name2) AND u.id = :id');
$query->setParameters(array(
':name' => 'Bob',
':name2' => 'Alice',
':id' => 321,
));
Despite this does not work and doc says "When referencing the parameters in Query#setParameter($param, $value) both named and positional parameters are used without their prefixies." on same page.
(side note: prefixies => prefixes)
Fresh on doctrine 2.0 you typically copy past examples to try out stuff, and when exception then says that ":id" is not a valid param on this query you end up not knowing what went wrong.
You can find the same error in the PHPDoc of the methods setParameter(...) and setParameters(..) in class Doctrine\ORM\QueryBuilder.
* <code> * $qb = $em->createQueryBuilder() * ->select('u') * ->from('User', 'u') * ->where('u.id = :user_id') * ->setParameter(':user_id', 1); * </code>It would be nice if this will be fixed, because it is confusing, if you look at the autocomplete notice of the IDEs.