0

如何在 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
(...)
4

1 回答 1

1

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

我个人就是这样做的。

generator.yml

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

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

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

它会生成一个名为View 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']).'
) ?]';
于 2012-09-24T09:10:02.853 回答