2012-08-07 91 views
1

發現很難把我的頭圍繞此。對於那些廣泛使用Symfony管理生成器的用戶,對於基於後端模塊的每個模塊,都有一個所有記錄的編輯頁面。典型地,這可以這樣獲得:Symfony鏈接到管理員表格記錄編輯頁面

module/primarykey/edit. (assume questions/1/edit) 

這很奇怪,因爲通常的主鍵將被傳入像一個URI參數:

問題/編輯/ 1。無論如何,這可能無關緊要。重要的是,我如何設法爲上述URI生成link_to。我通過不屬於UI的外部頁面鏈接editSuccess頁面。我使用的語法是

link_to('Edit','questions/'.$primary_key.'/edit') // (where $primary_key = 1 as in this case) 

但是,這種自動修改自己:

/backend_dev.php/questions/1/action 注意動作,而不是編輯

沒有這樣的行爲存在,它會返回一個404錯誤,指出不存在問題/操作

總而言之,您如何鏈接到專門用於記錄的管理頁面?

回答

1

url_for(以及link_to)幫手處理內部網址,而不是外部網址。語法是module/action?parameters。在你的情況下,這將是question/edit?id=$primarykey(假設操作查找id參數)。

如果你給一個名稱,你的路線,使生成的鏈接速度(哈希表查找與線性搜索):

echo url_for("@question_edit?id=$primary_key"); 

如果您設置的路線爲sfDoctrineRoute,它變得更簡單:

echo url_for("question_edit", $question); 

請注意如何不需要傳遞id,但問題對象 - 路由類將獲取所有必要的參數。