2010-12-22 54 views
1

如何指定動作的方法(類似於_delete):Symfony的generator.yml鏈接方法

generator: 
    config: 
    list: 
     object_actions: 
     myaction: {label: Label, action: myaction, method: post} 

這忽略我的方法設置,並呈現一個獲取鏈接:

<a href="/backend/myaction/1">Label</a> 

而我想要它到一個「後」鏈接,類似於_delete(帶onclick屬性)

回答

2

我猜你在使用Propel。

如果檢查發電機碼,特別是關於:發電機> THEME_NAME>模板>模板> _list_td_actions.php,那裏你會找到的代碼像PICE:

<?php else: ?> 
    <li class="sf_admin_action_<?php echo $params['class_suffix'] ?>"> 
     <?php echo $this->addCredentialCondition($this->getLinkToAction($name, $params, true), $params) ?> 

    </li> 
<?php endif; ?> 

這是代碼多數民衆贊成執行當你定義一個像你描述的自定義對象動作。檢查$ params,你可能會找到你需要的解決方案(我想你可能會定義類似onclick屬性的值)。

2

如果你只是想有一個確認的消息可能比最好的辦法是:

generator: 
    config: 
    list: 
     object_actions: 
     myaction: {label: Label, action: myaction, confirm: "Are your sure?", params: {onclick: 'alert("Bu!");'} } 

到的link_to其他參數可以用「PARAMS」選項(在上面的例子中通知的「onClick」)進行傳遞。

+0

謝謝!但我仍然無法實現它的工作。我創建了一個linkToMyaction方法,但它被忽略。在list_td_action部分中沒有引用它(與標準動作相比)。它工作,如果我手動覆蓋list_td_action部分並從那裏調用<?php echo $ helper-> linkToMyaction ...?>。我錯過了什麼嗎? – Dziamid 2010-12-22 17:35:08

+0

linkToMyaction()只能用於窗體上的對象操作,而不能用於列表。對不起,誤導你。我修復了我的回覆。 – 2010-12-22 18:21:40

0

也許這將是有益的

generator: 
    config: 
    list: 
     object_actions: 
     myaction:{ params: { onclick : "if(confirm('Are you sure?')){return true;}else{return false;}" } }