php - EasyAdminBundle,configureUserMenu界面别让我回
问题描述
我有给定的错误:
The controller must return a "Symfony\Component\HttpFoundation\Response" object
but it returned an object of type EasyCorp\Bundle\EasyAdminBundle\Config\UserMenu.
namespace App\Controller\User;
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
use EasyCorp\Bundle\EasyAdminBundle\Config\UserMenu;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\HttpFoundation\Response;
class DashboardUserController extends AbstractDashboardController
{
/**
* @Route("/userPanel", name="userPanel")
*/
public function configureUserMenu(UserInterface $user): UserMenu
{
// Usually it's better to call the parent method because that gives you a
// user menu with some menu items already created ("sign out", "exit impersonation", etc.)
// if you prefer to create the user menu from scratch, use: return UserMenu::new()->...
return parent::configureUserMenu($user)
// use the given $user object to get the user name
->setName($user->getUsername())
// use this method if you don't want to display the name of the user
->displayUserName(false)
// you can use any type of menu item, except submenus
->addMenuItems([
MenuItem::linkToRoute('My Profile', 'fa fa-id-card', '...', ['...' => '...']),
MenuItem::linkToRoute('Settings', 'fa fa-user-cog', '...', ['...' => '...']),
MenuItem::section(),
MenuItem::linkToLogout('Logout', 'fa fa-sign-out'),
]);
}
}
解决方案
我看到的第一个问题是您有一条与configureUserMenu()
. 路由应该返回某种类型的响应。您的仪表板控制器应该具有index()
关联路由的功能。您可以在此处返回树枝模板。此外,您只需要 1 个用于 EasyAdmin 3 的仪表板控制器。
如果您希望能够创建/读取/更新/删除实体,那么您将需要创建一个 Crud 控制器。我建议您阅读EasyAdmin 文档,因为使用命令为您生成它实际上非常容易。这是一个仪表板控制器示例,请注意您的仪表板控制器可以覆盖很多功能AbstractDashboardController
。所有这些信息在文档中都有详细的解释。
<?php
namespace App\Controller\Admin;
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
use EasyCorp\Bundle\EasyAdminBundle\Config\UserMenu;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\User\UserInterface;
class DashboardController extends AbstractDashboardController
{
/**
* @Route("/admin", name="admin")
*/
public function index(): Response
{
$templateVars = [];
return $this->render('admin/dashboard.html.twig',$templateVars);
}
public function configureUserMenu(UserInterface $user): UserMenu
{
$userMenuItems = [
MenuItem::linkToUrl('Profile','fa-id-card','/admin/profile'),
MenuItem::linkToUrl('Settings','fa-user-cog','/admin/settings'),
MenuItem::linkToLogout('__ea__user.sign_out', 'fa-sign-out')
];
if ($this->isGranted(Permission::EA_EXIT_IMPERSONATION)) {
$userMenuItems[] =
MenuItem::linkToExitImpersonation(
'__ea__user.exit_impersonation',
'fa-user-lock'
);
}
return UserMenu::new()
->displayUserName()
->displayUserAvatar()
->setName(method_exists($user, '__toString') ? (string) $user : $user->getUsername())
->setAvatarUrl(null)
->setMenuItems($userMenuItems);
}
}
推荐阅读
- javascript - 根据日期和时间标准显示网页
- regex - 匹配单词之间的内容
- rust - 如何将值移出对象安全的特征对象?
- google-apps-script - Google Script Drive.Files.remove(idToDELETE) 权限不足
- javascript - 通过 GET 请求获取 YouTube 播放列表的所有视频 ID
- java - 切换活动时冻结动画
- java - 如何在 Java / Kotlin 中创建返回复杂类型的 Spark UDF?
- kubernetes - 如何在挂载到多个 Kubernetes pod 时写入 gcePersistentDisk
- kubernetes - kubernetes 审计日志策略最新示例
- java - jdk 1.8 String.equalsIgnoreCase 中的重复空检查