どこに近いのかで同じテーブルの最新の日付を呼び出すクエリを作りたいと思います。Symfony Doctrineはどこで最近の日付を取るか
Invalid parameter number: number of bound variables does not match number of tokens
どこに近いのかで同じテーブルの最新の日付を呼び出すクエリを作りたいと思います。Symfony Doctrineはどこで最近の日付を取るか
Invalid parameter number: number of bound variables does not match number of tokens
を持つクエリに4つのパラメータを提供している ジョー
はこのお試しください:
$query = $this->createQueryBuilder('a')
->select('a.amount')
->where('a.product = :productId')
->andWhere('a.id = :id'),
$recentDate = null;
if($date === null){
$recentDate = $this->createQueryBuilder('a')
->select($query->expr()->max('a.date'))->getQuery()->getResult();
$query->andWhere('a.date = :recentDate');
}else{
$query->andWhere('a.date = :date');
}
$query->setParameters(array(
'productId' => $productId,
'id' => $id,
'date' => $date,
'recentDate' => $recentDate,
));
return $query;
が、私はこの問題を持っている!
が$query->setParameters(array(
'productId' => $productId,
'id' => $id
));
if($date === null) {
$query->setParameter(':recentDate', $recentDate);
} else {
$query->setParameter(':date', $date);
}
recentDateパラメータはクエリの一部ではない場合は$日付= NULLと逆もそうですが、dateパラメータではありません。
このクエリを作成するより洗練された方法がありますか?
種類は、あなたが唯一のちょうど同じ名前で、あなたの「日付」パラメータと「recentDate」パラメータに名前を付ける3.
$query = $this->createQueryBuilder('a')
->select('a.amount')
->where('a.product = :productId')
->andWhere('a.id = :id'),
$recentDate = null;
if($date === null){
$recentDate = $this->createQueryBuilder('a')
->select($query->expr()->max('a.date'))->getQuery()->getResult();
$query->andWhere('a.date = :recentDate');
}else{
$query->andWhere('a.date = :date');
}
$query->setParameters(array(
'productId' => $productId,
'id' => $id,
));
if($date === null){
$query->setParameter('recentDate', $recentDate);
}else{
$query->setParameter('date', $date);
}
についてあなたのリクエストに一緒に同意できず、このユニークなパラメータのみをあなたに渡します。setParameters()