Skip to content

Loading…

DDC-1069: setParameter[s]() examples on DQL page uses ":" even though that is not supported #1661

Closed
doctrinebot opened this Issue · 5 comments

2 participants

@doctrinebot

Jira issue originally created by user anderom:

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.

@doctrinebot

Comment created by mridgway:

I posted a simple patch for this at doctrine/orm-documentation#20

@doctrinebot

Comment created by anderom:

Looks good!

@doctrinebot

Comment created by @beberlei:

Resolved

@doctrinebot

Issue was closed with resolution "Fixed"

@doctrinebot

Comment created by naitsirch:

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.

@beberlei beberlei was assigned by doctrinebot
@doctrinebot doctrinebot added this to the 2.0.4 milestone
@doctrinebot doctrinebot closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.