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

Php symfony 1.4中的条件隐藏/显示新链接操作,php,symfony-1.4,Php,Symfony 1.4,我想显示/隐藏管理员生成器列表的新链接操作,具体取决于某些db条件 例如: 一个“小组”有许多“评估”,只有在小组状态未结束时,教师才能创建新的评估。我想隐藏symfony管理生成器列表的“新建”链接,具体取决于此。我该怎么做呢?我试着编辑_list_actions文件,但直到现在都没有成功 谢谢。 Yoan我想你可以通过几种方式做到这一点 您可以隐藏指向新操作的链接,但这不是很好,因为用户可以使用直接链接创建新的评估 所以我推荐你下一条路 转到cache/backend/prod/module

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

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

谢谢。
Yoan

我想你可以通过几种方式做到这一点

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

  • 所以我推荐你下一条路

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

    复制到apps/backend/modules/Namemodule/action/action.class.php

    下一个

    然后你需要检查状态。我现在不知道YONDB表名,所以举个例子

    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文件中,因此这不是很好的做法

    组状态为0或1?或者是日期?能否显示如何更改_list_td_actions.php文件?组状态为布尔值。我更新了问题,将文件更改为_list_actions.php
    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');  
                 }
    
          }