我使用Symfony 3.2和doctrine和postgresql。無效的文本表示形式:7錯誤:uuid輸入語法無效:「test」
我創建了一個以uuid
作爲主鍵的實體。
我的實體定義:
/**
* Booking
*
* @ORM\Table(name="booking")
* @ORM\Entity(repositoryClass="AppBundle\Repository\BookingRepository")
* @ORM\EntityListeners({"AppBundle\EventListener\BookingListener"})
*/
class Booking {
/**
* @var string
*
* @ORM\Column(type="guid")
* @ORM\Id
* @ORM\GeneratedValue(strategy="UUID")
*/
private $id;
}
在我的控制器我有這樣的表演動作:
/**
* @Route("booking/{id}", name="booking_show")
* @Method({"GET"})
*/
public function showAction(Request $request, Booking $booking) {
...
}
一切似乎都做工精細,但當我嘗試加載路徑把一個錯誤值作爲ID(即/booking/hello123
),收到一個:
SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for uuid: "hello123"
相反,我期望一個404.
有沒有辦法捕捉這個異常並重定向到404頁面?
你可以嘗試用更具體的路由,即'@Route(「/預訂/ { {}},name =「booking_show」,requirements = {「id」:「[0-9A-Fa-f] {4}( - ?[0-9A-Fa-f] {4}){7}」 })' – pozs