如何使用 Laravel 制作自定义主题以及在哪里存储主题数据?
Posted
技术标签:
【中文标题】如何使用 Laravel 制作自定义主题以及在哪里存储主题数据?【英文标题】:How to make a custom theme using Laravel and where to store theme data? 【发布时间】:2017-07-25 04:29:52 【问题描述】:我正在使用 Laravel 构建一个完整的网站,这个问题正面临着我,我想让用户完全控制网站的外观,并且能够在没有我帮助的情况下更改网站的布局。
但是当我考虑通过数据库以某种方式这样做时,每次用户更改布局样式时,都会在颜色和部分添加到数据库中的颜色和部分旁边添加几个包含数十列的表.
有没有其他方法可以将主题的选项存储在 XML 文件或数据库以外的任何其他文件中?
** 注意:当我检查 Wordpress 的数据库时,我没有发现任何与主题有关的东西,那么 Wordpress 在哪里存储主题选项?
【问题讨论】:
【参考方案1】:对于类似 XML 的存储,您可以使用 Laravel Config。假设您有文件config/templates.php
。在里面你可以有很多东西。
return [
'default_template' => 'layouts.templates.default',
'posts' => 'layouts.templates.post',
'footer' => 'layouts.includes.footer',
'options' => [
'full_with' => false,
'has_footer' => true,
'background_color' => '#fff',
'more_keys' => 'key_value'
]
];
然后在您的应用程序中的任何地方,您都可以获得默认模板,例如
$view = config('templates.default_template'); //will get
return view($view, compact('params'));
要更新密钥,例如 has_footer
,您可以这样做
config(['templates.options.has_footer' => false]); //will update
我认为这应该让你开始
简单示例
假设用户更改默认颜色并输入并提交表单。你会的
public function updateTheme(Request $request)
if ( $request->has('background_colour') && $request->background_colour != '' )
config(['templates.options.background_colour' => $request->background_colour]);
【讨论】:
我认为这些更改应该是手动更改,那么如何从 Dashboard 更改主题及其所有选项? 我向您展示了如何做到这一点,但您没有阅读。我的最后一行代码显示了如何从 Dashboard 更改它。 哦,是的,知道了,但请耐心等待,因为这对我很重要。我可以像你说的那样更改配置键,但我还有另一个问题>>你在哪里存储你给“has_footer”的值 false?例如:我有表单可以更改设置,所以如果我写了你说的最后一行,那么配置文件中的键值将永久更改? 您将它们存储在文件config/templates.php
中。如果这对您的问题有帮助,请标记我的答案。谢谢:)
一个小问题:它只是将数据存储在数组中一段时间,但是当我在另一个页面中调用它时,默认数据又回来了。以上是关于如何使用 Laravel 制作自定义主题以及在哪里存储主题数据?的主要内容,如果未能解决你的问题,请参考以下文章