我想要一个专栏,所以我可以删除它。这是表(SerialNumber)布局:
现在我有了booking_id和product_revision_id值,这就是我想要选择的方式。
像这样:SELECT* FROM SerialNumber WHERE booking_id = '123456' AND product_revision_id = '987456'
然后像这样:
$serial_nr = $em->getRepository("KopictAdminBundle:SerialNumber")->find();
有人可以指出我正确的方向吗?
--------------请求编辑--------------------
class SerialNumber
{
/**
* @var integer $id
*/
private $id;
/**
* @var interger $product_revision_id
*/
private $product_revision_id;
/**
* @var interger $booking_id
*/
private $booking_id;
/**
* @var string $serial_nr
*/
public $serial_nr;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set product_revision_id
*
* @param integer $product_revision_id
* @return SerialNumber
*/
public function setProduct_revision_id($product_revision_id)
{
$this->product_revision_id = $product_revision_id;
return $this;
}
/**
* Get product_revision_id
*
* @return integer
*/
public function getProduct_revision_id()
{
return $this->product_revision_id;
}
/**
* Set booking_id
*
* @param integer $booking_id
* @return SerialNumber
*/
public function setBooking_id($booking_id)
{
$this->booking_id = $booking_id;
return $this;
}
/**
* Get booking_id
*
* @return integer
*/
public function getBooking_id()
{
return $this->booking_id;
}
/**
* Set serial_nr
*
* @param string $serial_nr
* @return SerialNumber
*/
public function setSerial_nr($serial_nr)
{
$this->serial_nr = $serial_nr;
return $this;
}
/**
* Get serial_nr
*
* @return string
*/
public function getSerial_nr()
{
return $this->serial_nr;
}
}
答案 0 :(得分:2)
在您的SerialNumberRepository.php中:
/.../
public function findByBookingAndProduct($idBooking, $idProduct)
{
return $this->createQueryBuilder('s')
->where('s.booking_id = :booking_id')
->andWhere('s.product_revision_id = :product_id')
->setParameter('booking_id', $idBooking)
->setParameter('product_id', $idProduct)
->getQuery()
->getResult()
;
}
编辑:如果您只想捕获序列号:
public function findByBookingAndProduct($idBooking, $idProduct)
{
return $this->createQueryBuilder('s')
->select('s.serial_nr')
->where('s.booking_id = :booking_id')
->andWhere('s.product_revision_id = :product_id')
->setParameter('booking_id', $idBooking)
->setParameter('product_id', $idProduct)
->getQuery()
->getOneOrNullResult()
;
}
在你的控制器中:
/.../
$serial_nr = $em->getRepository("KopictAdminBundle:SerialNumber")->findByBookingAndProduct("123456", "987654");
/.../
您还必须在您的实体中声明您的存储库:
/**
* SerialNumber
*
* @ORM\Entity(repositoryClass="AppBundle\Repository\SerialNumberRepository")
*/
class SerialNumber {
...
}