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

时间:2017-07-17 07:57:53

标签: php symfony

我有一个这样的实体:

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吗?

由于

1 个答案:

答案 0 :(得分:3)

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

First route always win.

我能找到的最好 - this article给出了regexp的例子,所以我猜PHP regexp应该可以正常工作。

还有mention of Symfony expression language,但没有注释的例子。