gpt4 book ai didi

php - Symfony2,学说限制和偏移量没有按预期工作

转载 作者:行者123 更新时间:2023-11-30 22:56:39 26 4
gpt4 key购买 nike

我正在尝试使用表中的 limit 和 offset 从我的表中获取结果,并且该表与另外两个表有关系。其中一个是 MayToOne,另一个是 OneToOne

如果我不使用 setFirstResult 和 setMaxResults 结果是预期的,因为返回我的表的信息和其他相关表的信息但是使用 setFirst.. 和 setMax.. 只返回表的信息而不是相关表的信息。

$query = $this->repository->createQueryBuilder('p')
->where('LOWER(p.name) LIKE LOWER(:term)')
->orWhere('LOWER(p.summary) LIKE LOWER(:term)')
->orwhere('LOWER(p.description) LIKE LOWER(:term)')
->setParameter('term', '%'.$parameters['term'].'%')
->setFirstResult($offset)
->setMaxResults($limit)
->orderBy('p.id','DESC')
->getQuery();

$attractions = $query->getResult();

我正在尝试使用此查询使用分页器:

$query = $this->repository->createQueryBuilder('p')
->where('LOWER(p.name) LIKE LOWER(:term)')
->orWhere('LOWER(p.summary) LIKE LOWER(:term)')
->orwhere('LOWER(p.description) LIKE LOWER(:term)')
->setParameter('term', '%'.$parameters['term'].'%')
->setFirstResult($offset)
->setMaxResults($limit)
->orderBy('p.id','DESC');

$attractions = new Paginator($query, $fetchJoinCollection = true);

但由于出现此错误而无法正常工作:

[Semantical Error] The annotation "@Enum" in property Doctrine\ORM\Mapping\GeneratedValue::$strategy was never imported. Did you maybe forget to add a "use" statement for this annotation?

实体

    <?php

namespace Acme\MyBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Acme\MyBundle\Model\AttractionInterface;

use Gedmo\Mapping\Annotation as Gedmo;

use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Exclude;
use JMS\Serializer\Annotation\Expose;
use JMS\Serializer;

/**
* Attraction
*
* @ORM\Table(name="attractions")
* @ORM\Entity
*
* @ExclusionPolicy("all")
*/
class Attraction implements AttractionInterface
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @Expose
*/
private $id;

/**
* @var string
*
* @ORM\Column(name="name", type="string", length=150, nullable=false)
* @Expose
*/
private $name;

/**
* @var string
*
* @ORM\Column(name="latitude", type="string", length=30, nullable=false)
* @Expose
*/
private $latitude;

/**
* @var string
*
* @ORM\Column(name="longitude", type="string", length=30, nullable=false)
* @Expose
*/
private $longitude;

/**
* @var string
*
* @ORM\Column(name="summary", type="text", nullable=false)
* @Expose
*/
private $summary;

/**
* @var string
*
* @ORM\Column(name="description", type="text", nullable=true)
* @Expose
*/
private $description;

/**
* @var integer
*
* @ORM\Column(name="available_places", type="smallint")
* @Expose
*/
private $availablePlaces;

/**
* @var float
*
* @ORM\Column(name="original_price", type="float", nullable=false)
* @Expose
*/
private $originalPrice;

/**
* @var float
*
* @ORM\Column(name="new_price", type="float", nullable=false)
* @Expose
*/
private $newPrice;

/**
* @var \DateTime
*
* @ORM\Column(name="starting_point", type="datetime", nullable=false)
* @Expose
*/
private $startingPoint;

/**
* @var string
*
* @ORM\Column(name="picture", type="string", length=50, nullable=false)
* @Expose
*/
private $picture;

/**
* @var integer
*
* @ORM\ManyToOne(targetEntity="Vendor")
* @ORM\JoinColumn(name="vendor", referencedColumnName="id")
* @Expose
*/
private $vendor;

/**
* @var integer
*
* @ORM\OneToOne(targetEntity="Category")
* @ORM\JoinColumn(name="category", referencedColumnName="id")
* @Expose
*/
private $category;

/**
* @var \DateTime
*
* @ORM\Column(name="created_at", type="datetime", options={"default" = "CURRENT_TIMESTAMP"}, nullable=true)
* @Gedmo\Timestampable(on="create")
* @Expose
*/
private $createdAt;

/**
* @var \DateTime
*
* @ORM\Column(name="updated_at", type="datetime", options={"default" = "CURRENT_TIMESTAMP"}, nullable=true)
* @Expose
*/
private $updatedAt;


public function __toString()
{
return $this->name;
}

/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}

/**
* Set name
*
* @param string $name
* @return Attraction
*/
public function setName($name)
{
$this->name = $name;

return $this;
}

/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}

/**
* Set latitude
*
* @param string $latitude
* @return Attraction
*/
public function setLatitude($latitude)
{
$this->latitude = $latitude;

return $this;
}

/**
* Get latitude
*
* @return string
*/
public function getLatitude()
{
return $this->latitude;
}

/**
* Set longitude
*
* @param string $longitude
* @return Attraction
*/
public function setLongitude($longitude)
{
$this->longitude = $longitude;

return $this;
}

/**
* Get longitude
*
* @return string
*/
public function getLongitude()
{
return $this->longitude;
}

/**
* Set summary
*
* @param string $summary
* @return Attraction
*/
public function setSummary($summary)
{
$this->summary = $summary;

return $this;
}

/**
* Get summary
*
* @return string
*/
public function getSummary()
{
return $this->summary;
}

/**
* Set description
*
* @param string $description
* @return Attraction
*/
public function setDescription($description)
{
$this->description = $description;

return $this;
}

/**
* Get description
*
* @return string
*/
public function getDescription()
{
return $this->description;
}

/**
* Set availablePlaces
*
* @param integer $availablePlaces
* @return Attraction
*/
public function setAvailablePlaces($availablePlaces)
{
$this->availablePlaces = $availablePlaces;

return $this;
}

/**
* Get availablePlaces
*
* @return integer
*/
public function getAvailablePlaces()
{
return $this->availablePlaces;
}

/**
* Set originalPrice
*
* @param float $originalPrice
* @return Attraction
*/
public function setOriginalPrice($originalPrice)
{
$this->originalPrice = $originalPrice;

return $this;
}

/**
* Get originalPrice
*
* @return float
*/
public function getOriginalPrice()
{
return $this->originalPrice;
}

/**
* Set newPrice
*
* @param float $newPrice
* @return Attraction
*/
public function setNewPrice($newPrice)
{
$this->newPrice = $newPrice;

return $this;
}

/**
* Get newPrice
*
* @return float
*/
public function getNewPrice()
{
return $this->newPrice;
}

/**
* Set startingPoint
*
* @param \DateTime $startingPoint
* @return Attraction
*/

public function setStartingPoint($startingPoint)
{
$this->startingPoint = \DateTime::createFromFormat('Y-m-d H:i:s', $startingPoint);

return $this;
}

/**
* Get startingPoint
*
* @return \DateTime
*/
public function getStartingPoint()
{
return $this->startingPoint;
}

/**
* Set picture
*
* @param string $picture
* @return Attraction
*/
public function setPicture($picture)
{
$this->picture = $picture;

return $this;
}

/**
* Get picture
*
* @return string
*/
public function getPicture()
{
return $this->picture;
}

/**
* Set vendor
*
* @param integer $vendor
* @return Attraction
*/
public function setVendor($vendor)
{
$this->vendor = $vendor;

return $this;
}

/**
* Get vendor
*
* @return integer
*/
public function getVendor()
{
return $this->vendor;
}

/**
* Set category
*
* @param integer $category
* @return Attraction
*/
public function setCategory($category)
{
$this->category = $category;

return $this;
}

/**
* Get categoryId
*
* @return integer
*/
public function getCategory()
{
return $this->category;
}

/**
* Set createdAt
*
* @param \DateTime $createdAt
* @return Attraction
*/
public function setCreatedAt($createdAt)
{
$this->createdAt = $createdAt;

return $this;
}

/**
* Get createdAt
*
* @return \DateTime
*/
public function getCreatedAt()
{
return $this->createdAt;
}

/**
* Set updatedAt
*
* @param \DateTime $updatedAt
* @return Attraction
*/
public function setUpdatedAt($updatedAt)
{
$this->updatedAt = $updatedAt;

return $this;
}

/**
* Get updatedAt
*
* @return \DateTime
*/
public function getUpdatedAt()
{
return $this->updatedAt;
}
}

最佳答案

你见过https://github.com/schmittjoh/JMSSerializerBundle/issues/380吗?似乎有同样的问题。

一个问题:没有那个复杂的查询它能工作吗?例如:

$query = $this->repository->createQueryBuilder('p')
->orderBy('p.id','DESC')
->getQuery();

$attractions = $query->getResult();

关于php - Symfony2,学说限制和偏移量没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26079018/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com