admin generator yaml:链接到另一个模块

时间:2012-09-24 08:05:07

标签: symfony1 symfony-1.4 admin-generator

如何在Symfony管理生成器Yaml中生成指向其他模块的链接? 我试图从sfGuardUser模块(用户列表)链接到profile / viewProfilesDetails但它总是指向sfGuardUser / viewProfilesDetails

我的generator.yml:

(...)
  list:
    title:   Użytkownicy
    display: [=username, _name, created_at, last_login]
    actions: {}
    batch_actions: {}
    object_actions:
      _edit: ~
      signIn:
        label:  Zaloguj jako
        action: signIn
      viewProfiles:
        label:  Profile
        module: profiles
        action: viewProfilesDetails
(...)

1 个答案:

答案 0 :(得分:1)

我认为您不能在此配置中指定模块,而只能在同一模块中指定操作。

我个人就这样做了。

generator.yml

object_actions:
  _edit: ~
  _delete: ~
  viewItems: { label: View items, action: viewItems }

然后在generator.yml的同一模块中,我创建了一个动作:

public function executeViewItems($request)
{
  $this->redirect($this->generateUrl('items'));
}

它生成一个名为查看项目的链接,例如/blog/158/viewItems重定向到/items(即路由@items)。

修改

事实上,无法指定其他模块。

模板_list_td_actions.php显示list.object_actions。这是有趣的部分:

<?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; ?>

使用getLinkToAction

调用使用当前模块的$this->getModuleName()
return '[?php echo link_to(
  __(\''.$params['label'].'\', array(), \''.$this->getI18nCatalogue().'\'), 
  \''.$this->getModuleName().'/'.$action.$url_params.', 
  '.$this->asPhp($params['params']).'
) ?]';