我使用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