Yes*_*rry 4 php yaml routes symfony
我在Symfony2中有一个全能的后备路由,我无法在Symfony3中工作.我尝试了这种确切的语法(我的Symfony2路线的逐字副本),但是没有用.
fallback:
path: /{req}
defaults: { _controller: MyBundle:Default:catchAll }
requirements:
req: ".+"
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Symfony3中使用它?(这实际上是唯一阻止我使用Symfony3并让我保持在v2.8的东西)
Alv*_*unk 11
这应该可以帮到你:
route1:
path: /{req}
defaults: { _controller: 'AppBundle:Default:index' }
requirements:
req: ".+"
Run Code Online (Sandbox Code Playgroud)
其中,我的控制器被称为"DefaultController",我有一个名为"indexAction()"的函数.
这是我的DefaultController代码:
class DefaultController extends Controller
{
/**
* @Route("/", name="homepage")
*/
public function indexAction(Request $request)
...
Run Code Online (Sandbox Code Playgroud)
我确实尝试过你在我的环境中所说的内容,直到我指定了正确的控制器设置才能正常工作.
编辑:
为此,必须将参数Request $request(带有类型提示)添加到操作的方法签名中.
我发现当前接受的答案对Symfony 4几乎有用,所以我要添加我的解决方案:
这是我为使其在Symfony 4 中工作所做的工作:
/src/Controller/DefaultController.php,确保有一个函数调用index(){}
Request $request的第一个参数的一些评论建议。routes.yaml打开/config/routes.yaml,添加:
yourRouteNameHere:
path: /{req}
defaults: { _controller: 'App\Controller\DefaultController::index' }
requirements: # the controller --^ the method --^
req: ".*"` # not ".+"
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
5757 次 |
| 最近记录: |