条件隐藏/显示symfony 1.4中的新链接操作

时间:2011-11-04 00:16:39

标签: php symfony-1.4

我想显示/隐藏管理生成器列表的新链接操作,具体取决于某些db条件。

例如: “组”具有许多“评估”,只有在组状态未结束时,教师才可以创建新的评估。我想隐藏symfony管理生成器列表的“新”链接,具体取决于此。我怎么能这样做?我尝试编辑_list_actions文件直到现在都没有成功。

感谢。 Yoan

1 个答案:

答案 0 :(得分:0)

我认为你可以通过几种方式实现它。

  1. 您可以隐藏新操作的链接,但这不是很好,因为用户可以使用直接链接创建新的评估。

  2. 所以我建议你下一步。

  3. 转到 cache / backend / prod / modules / autoNamemodule / action / action.class.php

    复制到 apps / backend / modules / Namemodule / action / 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文件中进行,所以这不是很好的做法。