Php 符合uuid要求的Symfony控制器路由

Php 符合uuid要求的Symfony控制器路由,php,symfony,Php,Symfony,我有这样一个实体: class Building { /** * @var int * * @ORM\Column(name="id") * @ORM\Id * @ORM\GeneratedValue(strategy="UUID") * @Expose() */ private $id; .... } 我想知道是否有办法指定uuid上的要求,以便在rest API上分离两个不同的url: clas

我有这样一个实体:

class Building
{
    /**
     * @var int
     *
     * @ORM\Column(name="id")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="UUID")
     * @Expose()
     */
    private $id;

    ....
}
我想知道是否有办法指定uuid上的要求,以便在rest API上分离两个不同的url:

class BuildingController extends BaseController
{   
    /**
     *
     * @Rest\Get("/buildings/{id}", requirements={"id" = "\d+"})
     */
    public function getBuildingAction($id)
    {
        //code
    }
\d+
对于整数值是正确的,但我想将其更改为uuid类型,因为我有另一个路由,例如:

 /**
 * @Rest\Get("/buildings/lot")
 */
public function getBuildingLotAction(Request $request)
{
    //code
}
可以在需求类型上定义uuid吗


谢谢

我相信你可以简单地把“/buildings/lot”动作放在/buildings/{id}之前

我能找到的最好的例子-给出了regexp的例子,所以我想PHP regexp应该可以很好地工作


还有,,虽然没有注释示例。

当然,但我想知道是否有办法在需求中声明uuid,最大的问题是/buildings/lot永远无法调用,因为所有路由buildings/继续我的getBuildingAction,因为它们对symfonyTry的声明中没有差异,这个正则表达式:/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/iI实际上不明白你的确切意思,但我想知道这是否对你有帮助。