我想显示/隐藏管理生成器列表的新链接操作,具体取决于某些db条件。
例如: “组”具有许多“评估”,只有在组状态未结束时,教师才可以创建新的评估。我想隐藏symfony管理生成器列表的“新”链接,具体取决于此。我怎么能这样做?我尝试编辑_list_actions文件直到现在都没有成功。
感谢。 Yoan
答案 0 :(得分:0)
我认为你可以通过几种方式实现它。
您可以隐藏新操作的链接,但这不是很好,因为用户可以使用直接链接创建新的评估。
所以我建议你下一步。
转到 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文件中进行,所以这不是很好的做法。