简体   繁体   English

多列请求Symfony2学说

[英]request with multiple columns Symfony2 Doctrine

I wanna request a column so I can remove it. 我想请求一列,以便将其删除。 This is the table(SerialNumber) layout: 这是表格(SerialNumber)的布局:

  • id ID
  • product_revision_id product_revision_id
  • booking_id booking_id
  • serial_nr serial_nr

Now do I have the booking_id and the product_revision_id values and thats is how I wanna select them. 现在,我是否有booking_id和product_revision_id值,这就是我想要选择它们的方式。

like this: 像这样:

SELECT* FROM SerialNumber WHERE booking_id = '123456' AND product_revision_id = '987456'

but then like this: 但是像这样:

 $serial_nr = $em->getRepository("KopictAdminBundle:SerialNumber")->find();

Can some one point me in the right direction? 有人可以指出我正确的方向吗?

--------------Requested edit-------------------- --------------请求的编辑--------------------

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;
    }
}

In your SerialNumberRepository.php: 在您的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()
    ;
}

EDIT: If you only want to catch the serialnumber: 编辑:如果您只想捕获序列号:

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()
    ;
}

And in your controller: 在您的控制器中:

/.../

$serial_nr = $em->getRepository("KopictAdminBundle:SerialNumber")->findByBookingAndProduct("123456", "987654");

/.../

You also have to declare your repository in your entity : 您还必须在实体中声明存储库:

/**
 * SerialNumber
 *
 *  @ORM\Entity(repositoryClass="AppBundle\Repository\SerialNumberRepository")
 */
class SerialNumber {
    ...
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM