php框架 - symfony controller對應的view的問題
为情所困
为情所困 2017-05-16 16:44:18
0
3
877

我在看教學影片裡

#

紅線地方輸出到前端頁面,並沒有說是哪個模版,影片裡確實訪問到了那個指定模版頁面。是透過 @Route(name="page_index")這個做到的嗎,但是我沒看到他的前端頁面有用到這個名字,我奇怪這是怎麼訪問到那個制定頁面的?

問題2:如果在app/confing/routing裡同時定義了2個路徑是‘/’但是訪問的控制器是不一樣的,那麼當我訪問地址 localhost:8000會訪問那個頁面呢?如果想區分怎麼區分?

为情所困
为情所困

全部回覆(3)
Ty80

宣告@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

例如:

DefaultController 的 indexAction

預設模板在

Resources/views/Default/index.html.twig

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板