我在看教學影片裡
紅線地方輸出到前端頁面,並沒有說是哪個模版,影片裡確實訪問到了那個指定模版頁面。是透過 @Route(name="page_index")這個做到的嗎,但是我沒看到他的前端頁面有用到這個名字,我奇怪這是怎麼訪問到那個制定頁面的?
問題2:如果在app/confing/routing裡同時定義了2個路徑是‘/’但是訪問的控制器是不一樣的,那麼當我訪問地址 localhost:8000會訪問那個頁面呢?如果想區分怎麼區分?
宣告@Template()後可以不用在return那寫路徑,會自動查找,像是跟樓上說的,defaultController的indexaction就是Resources/views/Default/index.html.twig路徑
我用過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
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("your/view/path")
宣告@Template()後可以不用在return那寫路徑,會自動查找,像是跟樓上說的,defaultController的indexaction就是Resources/views/Default/index.html.twig路徑
我用過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。預設範本放在
Resources/views/{your controller name}/{your action name}.html.twig
例如:
DefaultController 的 indexAction
預設模板在
Resources/views/Default/index.html.twig
注意 Linux 下區分大小寫。
也可以指定路徑, annotation:
@Template("your/view/path")