【问题标题】:Error: There is no `_sonata_admin` defined for the controller错误:没有为控制器定义`_sonata_admin`
【发布时间】:2013-12-15 19:48:46
【问题描述】:

我按照文档添加了自定义路线。当我单击列表视图中的按钮时,出现错误:

没有为控制器***\UserController和当前路由resetPassword定义_sonata_admin

文档:http://sonata-project.org/bundles/admin/master/doc/reference/routing.html

我的管理服务定义如下:

sonata.admin.user:
    class: ****\Admin\UserAdmin #User Admin
    tags:
        - { name: sonata.admin, model_manager: cems_model_manager, manager_type: orm, group: core, label: "Users" }
    arguments:
        - ~
        - models\User #User Model
        - '****Bundle:User' #User Controller
    calls:
        - [ setTranslationDomain, [****Bundle]]

我已经在我的 UserAdmin 中添加了我的路线

  protected function configureRoutes(RouteCollection $collection)
  {
      parent::configureRoutes($collection);
      $collection->add('password_reset', $this->getRouterIdParameter() . '/resetPassword/');
  }

并创建了自定义控制器和操作。

  <?php

  namespace ****\Controller;

  use Sonata\AdminBundle\Controller\CRUDController;
  use Symfony\Component\Routing\Annotation\Route;
  use Symfony\Component\HttpFoundation\Request;

  class UserController extends CRUDController
  {

      /**
       * @Route("/User/{userId}/resetPassword/", name="resetPassword")
       */
      public function resetPasswordAction(Request $request, $userId)
      {
          // code here 
      } 
  }

如果我手动或通过 ajax 调用浏览该路由,该路由可以正常工作,我们的应用程序在另一点执行此操作。但是,当我尝试单击在 UserAdmin 的 configureListFields() 中生成的列表视图中的按钮时,我收到主题错误。我无法弄清楚其他任何默认操作如何将代码放入请求中,它们看起来与此相同。当我用谷歌搜索错误时,我发现其他一些人在问这个问题,但我的管理员似乎配置正确,这是我能找到的唯一答案——而且它似乎已经过时了,因为参数现在似乎处于不同的顺序。

提前感谢你们提供的任何帮助。

【问题讨论】:

  • 我没有这种情况,但仍然是同样的错误,对我来说帮助传递给路由参数: $this->router->generate('statements', ['_sonata_admin' => 'vop_policy.policy_admin '])

标签: php symfony sonata-admin


【解决方案1】:

不需要@Route("/User/{userId}/resetPassword/", name="resetPassword") 因为它之前在 configureRoutes 函数中定义过。

【讨论】:

    【解决方案2】:

    它唯一的想法,未经测试 - 也许你必须让控制器动作与路由名称对应(而不是模式字符串): 密码重置 -> 密码重置操作

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多