Syntax Error - line 0, col 50: Error: Expected end of string, got '.'"
Syntax Error - line 0, col 50: Error: Expected end of string, got '.'"
您好,我正在使用 symfony 4 和 doctrine。这是我的学说查询。
public function paginationQueryByAttributes($attributes) {
$qb = $this->createQueryBuilder("c");
$qb->select('c');
if (array_key_exists('model_id', $attributes)) {
$qb->leftJoin('c.model', 'm.id');
$qb->andWhere('m.id = ' . $attributes['model_id']);
unset($attributes['model_id']);
} elseif (array_key_exists('brand_id', $attributes)) {
$qb->leftJoin('c.model', 'm');
}
}
这是我的汽车模型。
<?php
namespace App\Entity;
use App\Model\BaseCar;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
use Swagger\Annotations as SWG;
use JMS\Serializer\Annotation\Groups;
/**
* @ORM\Entity(repositoryClass="App\Repository\CarRepository")
* @UniqueEntity("id")
*/
class Car extends BaseCar
{
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Model",cascade={"refresh","merge"}, inversedBy="cars")
* @ORM\JoinColumn(nullable=false)
*/
protected $model;
public function getModel()
{
return $this->model;
}
public /**
* @param $
*/function setModel( $model)
{
$this->model = $model;
return $this;
}
}
我这样调用存储库,
$attributes = $request->request->all();
$query = $this->getDoctrine()
->getRepository(Car::class)
->paginationQueryByAttributes($attributes);
我遇到了这个错误。
[Syntax Error] line 0, col 50: Error: Expected end of string, got '.'
这是查询...
SELECT c
FROM App\Entity\Car c
LEFT JOIN c.model m.id
LEFT JOIN m.brand b
WHERE m.id = 2
AND b.id = 1
AND c.code like :code
AND c.name like :name
在您的加入 $qb->leftJoin('c.model', 'm.id');
部分 m.id
现在是您的别名。将其更改为 $qb->leftJoin('c.model', 'm');
您好,我正在使用 symfony 4 和 doctrine。这是我的学说查询。
public function paginationQueryByAttributes($attributes) {
$qb = $this->createQueryBuilder("c");
$qb->select('c');
if (array_key_exists('model_id', $attributes)) {
$qb->leftJoin('c.model', 'm.id');
$qb->andWhere('m.id = ' . $attributes['model_id']);
unset($attributes['model_id']);
} elseif (array_key_exists('brand_id', $attributes)) {
$qb->leftJoin('c.model', 'm');
}
}
这是我的汽车模型。
<?php
namespace App\Entity;
use App\Model\BaseCar;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
use Swagger\Annotations as SWG;
use JMS\Serializer\Annotation\Groups;
/**
* @ORM\Entity(repositoryClass="App\Repository\CarRepository")
* @UniqueEntity("id")
*/
class Car extends BaseCar
{
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Model",cascade={"refresh","merge"}, inversedBy="cars")
* @ORM\JoinColumn(nullable=false)
*/
protected $model;
public function getModel()
{
return $this->model;
}
public /**
* @param $
*/function setModel( $model)
{
$this->model = $model;
return $this;
}
}
我这样调用存储库,
$attributes = $request->request->all();
$query = $this->getDoctrine()
->getRepository(Car::class)
->paginationQueryByAttributes($attributes);
我遇到了这个错误。
[Syntax Error] line 0, col 50: Error: Expected end of string, got '.'
这是查询...
SELECT c
FROM App\Entity\Car c
LEFT JOIN c.model m.id
LEFT JOIN m.brand b
WHERE m.id = 2
AND b.id = 1
AND c.code like :code
AND c.name like :name
在您的加入 $qb->leftJoin('c.model', 'm.id');
部分 m.id
现在是您的别名。将其更改为 $qb->leftJoin('c.model', 'm');