2011-11-04 70 views
0

我想根據某些db條件顯示/隱藏管理生成器列表的新鏈接動作。有條件隱藏/顯示symfony 1.4中的新鏈接動作

例如: 「組」有許多「評估」,只有當組狀態未結束時,教師纔可以創建新的評估。我想隱藏symfony管理生成器列表的「新」鏈接,具體取決於它。我怎樣才能做到這一點?我直到現在才嘗試編輯_list_actions文件,但沒有成功。

謝謝。 Yoan

+0

組狀態是這個0或1嗎?或者它是日期?你能告訴你如何改變_list_td_actions.php文件嗎? – denys281

+0

組狀態是布爾值。我更新了問題,將文件更改爲_list_actions.php – Yoan

回答

0

我認爲你可以通過幾種方式。

  1. 您可以隱藏指向新操作的鏈接,但這不太好,因爲用戶可以使用直接鏈接創建新的評估。

  2. 所以我建議你下一個方法。

轉到緩存/後端/生產/模塊/ autoNamemodule /動作/ action.class.php

複製到應用/後端/模塊/ Namemodule /動作/ action.class.php

下一個

public function executeNew(sfWebRequest $request) 
    { 
    $this->form = $this->configuration->getForm(); 
    $this->product = $this->form->getObject(); 
    } 

比你需要檢查狀態。我現在不馮數據庫表名,因此,例如

public function executeNew(sfWebRequest $request) 
     { 

$id = $request->getParameter('id', false); 
     if (ctype_digit($id)) { 

      $group = Doctrine::getTable('Group')->findOneById($id); 
      $group_status=$group->getStatus(); 

       if($group_status== 0){ 

        $this->form = $this->configuration->getForm(); 
        $this->product = $this->form->getObject(); 

       } 
       else { 
       $this->getUser()->setFlash('notice', 'Group status ended!You can not create new evaluations '); 
       $this->redirect('@yourmodulenamerout'); 
      } 

     } 

所以,如果組狀態結束您重定向用戶的您索引後端模塊,爲什麼他不能創造新的評估表明用戶)。您還可以隱藏指向新操作的鏈接。以同樣的方式,但你必須使它在_list_actions文件中,所以這不是很好的做法。