簡體   English   中英

如何在Symfony2中獲取控制器動作的路徑?

[英]How to get the path of an action of a controller in Symfony2?

我正在練習symfony2。 我有一個問題:

我剛剛制作了一個簡單的樹枝頁面,該頁面將數據發布到控制器的動作中,並且有一個功能(它可以正常工作):

$.ajax({
    type: 'POST',
    url: "{{ path('my_test_account_register') }}",
    data: account,
    success: function(msg){
        alert("Succeed!");
    },
    error: function(XmlHttpRequest,textStatus, errorThrown){
        alert ("Failed! ");
    }
}

但是,我不想向我的每個動作添加注釋。 我想將url: "{{ path('my_test_account_register') }}"替換為url: "{{ path('MyTestBudnle:Account:register') }}" ,但是我失敗了。

我的問題是:如何在控制器內指定操作的網址? 也許這是一個愚蠢的問題,這是我第一次進入stackoverflow。 所以,很高興認識你們!

我建議你使用

url: Routing.generate('state_list'),

看看FOSJsRoutingBundle

您(正確)使用的樹枝函數path()為給定的路由名稱和一些可選參數創建url。

對於同一操作,控制器可以具有不同的路由(從而有不同的URL)。 因此,如果要查找特定操作的URL,則不能使用Bundle:Controller:Action表示法。 相反,您必須使用路由名稱。

path()render()之間的區別在於, render()包括子請求對模板中特定動作的響應。 由於這都是內部發生的,因此無需為此生成URL。 您甚至可以render()與完全沒有路由的動作一起使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM