我正在創建只有兩個實體的訂單和裝運的小應用程序。學說findOneBy方法不起作用
貨件實體如下:(方法去除,以保持短)
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string $username
*
* @ORM\Column(name="username", type="string", length=255)
*/
private $username;
/**
* @var string $password
*
* @ORM\Column(name="password", type="string", length=255)
*/
private $password;
/**
* @var integer $order_id
*
* @ORM\Column(name="order_id", type="integer")
*/
private $order_id;
/**
* @var smallint $payment_type
*
* @ORM\Column(name="payment_type", type="smallint")
*/
private $payment_type;
在我的控制,我想用order_id
但我findOneByOrderId
方法是行不通的查詢。
$orderExists = $this->getDoctrine()
->getRepository('ShipBundle:Shipment')
->findOneByOrderId($orderId);
var_dump($orderExists); die();
我得到的錯誤是:
Entity 'ShipBundle\Entity\Shipment' has no field 'orderId'. You can therefore not call 'findOneByOrderId' on the entities' repository.
如果我沒看錯的,教條find
方法在下劃線加入變量和利用它們。我究竟做錯了什麼?
不應該是findOneById()嗎? – Cups 2012-08-13 10:40:05
您是否有訂購ID的getter?由於這是一個私人財產,如果你沒有getOrderId()方法,你將無法訪問它 – 2012-08-13 10:43:00
@Carlos謝謝你的迴應。我有所有的getter setter方法。我沒有發佈它們來保持簡短的問題。我在這個問題中提到過。 – Aayush 2012-08-13 10:44:35