首页 > symfony controller对应的view的问题

symfony controller对应的view的问题

我在看教学视频里

红线地方输出到前端页面,并没有说是哪个模版,视频里确实访问到了那个指定模版页面。是通过 @Route(name="page_index")这个做到的吗,但是我没看到他的前端页面有用到这个名字,我奇怪这是怎么访问到那个制定页面的?

问题2:如果在app/confing/routing里同时定义了2个路径是‘/’但是访问的控制器是不一样的,那么当我访问地址 localhost:8000会访问那个页面呢?如果想区分要怎么区分?


我用过1.2的版本, 很老的了, 用那个版本的经验告诉你一下:
制定模版不是通过route的, route只是控制你访问的是哪个controller的哪个action, 具体定义哪个模板则是在controller中的, 虽然上面的代码中没有定义木板的方法 ,但他会有一个默认的view的, 1.2中的是actionnameSuccess.php文件,你奇怪他是在怎么访问的问题需要看源码, 会有默认的实现。
问题2中的的routing中同时定义了两个/, 他会从上向下查找, 一旦请求的url满足了某个规则, 则直接跳转到对应的controller, 相同routing规则的第二个配置就找不到了, 所以你的第二个/并没有什么卵用,localhost:8000 默认会指向default的controller和action, 在routing的最后会有这个默认配置, 但你这个/配置是否会影响, 你得看的配置是怎么配的了,有可能你的这个配置满足了默认页面的请求url规则, 会跳转到你的/对应的controller的action, 也有可能并不满足, 依旧走默认的controller的action。

注意,我说的都是基于1.2的版本, 仅供参考


默认模板放在 Resources/views/{your controller name}/{your action name}.html.twig

比如:

DefaultController 的 indexAction

默认模板在

Resources/views/Default/index.html.twig

注意 Linux 下区分大小写。
也可以指定路径, annotation: @Template("your/view/path")


声明@Template()后可以不用在return那写路径,会自动查找,比如跟楼上说的,defaultController的indexaction就是Resources/views/Default/index.html.twig路径

【热门文章】
【热门文章】