如何在Symfony EasyAdmin 4中永久启用暗黑模式并禁用主题选择器
永久启用Symfony EasyAdmin暗黑模式并禁用主题选择器
核心配置实现
在你的EasyAdmin Dashboard控制器类中,重写configureSettings()方法,直接设置默认主题为暗黑模式,并禁用主题选择器:
use EasyCorp\Bundle\EasyAdminBundle\Config\Settings; use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController; class YourDashboardController extends AbstractDashboardController { // ... 其他已有的控制器代码 public function configureSettings(): Settings { return parent::configureSettings() // 强制默认使用暗黑模式 ->setDefaultTheme('dark') // 隐藏主题选择器控件 ->disableThemeSelector(); } }
强制覆盖用户本地存储(可选)
如果担心用户之前通过主题选择器设置过浅色模式,本地存储的配置会覆盖默认设置,可以通过自定义模板添加JS强制覆盖:
- 在你的EasyAdmin模板目录中创建
base.html.twig(继承自EasyAdmin的基础模板) - 添加以下代码:
{% extends '@EasyAdmin/page/content.html.twig' %} {% block body_javascript %} {{ parent() }} <script> // 强制将暗黑模式写入本地存储 localStorage.setItem('ea-theme', 'dark'); // 立即切换页面主题为暗黑模式 document.documentElement.setAttribute('data-theme', 'dark'); </script> {% endblock %}
这样无论用户之前的设置是什么,每次加载后台都会强制启用暗黑模式,同时主题选择器也会被隐藏。
内容的提问来源于stack exchange,提问作者Damien Overeem
相关产品推荐
相关产品推荐

