Laravel: 如何为每个用户使用单独的模板?

Laravel: How to use a separate template for each user?

我有很多着陆页模板,我想将所有模板(布局)名称保存在数据库中。我如何从数据库中获取布局名称并进行扩展。例如我有示例数据库结构:

Table `users`
Table `themes`
Table `configurations`

在 table 上,用户和主题具有用户数据和主题名称。并且 table configurations 具有示例结构:

id
user_id
theme_id

如何从 configurations table 获取主题名称,然后从 views 文件夹扩展所需的布局?

这取决于您使用的关系。我猜这里的好选择是使用 many-to-many 。获取模板名称,例如:

$template = Theme::whereHas('users', function($q) {
        $q->where('id', auth()->id());
    })
    ->value('name');

然后将变量传递给视图并像这样扩展它:

@extends($template)