Symfony4 对自定义路由使用自定义方法控制器
我为PUT项操作创建了一个自定义控制器。我使用Symfony4 对自定义路由使用自定义方法控制器,symfony4,api-platform.com,Symfony4,Api Platform.com,我为PUT项操作创建了一个自定义控制器。我使用\u invoke方法进行默认操作,但我尝试使用自定义方法对同一项执行第二次PUT操作 我尝试了这个配置,但没有成功 * "activate"={ * "method"="PUT", * "path"="/safety_rooms/{id}/activate", * "requirements"={"id"="\d+"}, * "cont
\u invoke
方法进行默认操作,但我尝试使用自定义方法对同一项执行第二次PUT操作
我尝试了这个配置,但没有成功
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class.activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class(activeRoom),
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class:activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem:activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=[SafetyRoomPutItem::class, "activeRoom"],
* },
但是我得到[语义错误]找不到常量App\Controller\safetyroputitem::activeRoom,class App\Entity\SafetyRoom。
我尝试了这个配置,但没有成功
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class.activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class(activeRoom),
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class:activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem:activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=[SafetyRoomPutItem::class, "activeRoom"],
* },
但是我在类App\Entity\SafetyRoom中的1274位置得到了“.”预期的条令\Common\Annotations\DocLexer::T\u CLOSE\u CURLY\u大括号
我尝试了这个配置,但没有成功
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class.activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class(activeRoom),
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class:activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem:activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=[SafetyRoomPutItem::class, "activeRoom"],
* },
我尝试了这个配置,但没有成功
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class.activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class(activeRoom),
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class:activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem:activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=[SafetyRoomPutItem::class, "activeRoom"],
* },
我尝试了这个配置,但没有成功
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class.activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class(activeRoom),
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class:activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem:activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=[SafetyRoomPutItem::class, "activeRoom"],
* },
我尝试了这个配置,但没有成功
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class.activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class(activeRoom),
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem::class:activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=SafetyRoomPutItem:activeRoom,
* },
* "activate"={
* "method"="PUT",
* "path"="/safety_rooms/{id}/activate",
* "requirements"={"id"="\d+"},
* "controller"=[SafetyRoomPutItem::class, "activeRoom"],
* },
但是我得到了[Syntax Error]预期的纯值,在类App\Entity\SafetyRoom中1250处得到了“[”。
是否确实在使用类时声明了完全限定的命名空间:
使用App\Controller\safetyroputitem\safetyroputitem
?参见下面的“或者,您也可以使用传统的Symfony控制器”