搜尋

首頁  >  問答  >  主體

php框架 - symfony controller對應的view的問題

我在看教學影片裡

#

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

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

为情所困为情所困2795 天前903

全部回覆(3)我來回復

  • PHP中文网

    PHP中文网2017-05-16 16:46:18

    宣告@Template()後可以不用在return那寫路徑,會自動查找,像是跟樓上說的,defaultController的indexaction就是Resources/views/Default/index.html.twig路徑

    回覆
    0
  • 高洛峰

    高洛峰2017-05-16 16:46:18

    我用過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的版本, 僅供參考

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-16 16:46:18

    預設範本放在 Resources/views/{your controller name}/{your action name}.html.twig

    例如:

    DefaultController 的 indexAction

    預設模板在

    Resources/views/Default/index.html.twig

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

    回覆
    0
  • 取消回覆