laravel 从带有实际点的文件夹名称加载视图

Oba*_*bay 5 php routing laravel

我正在创建一个多域 Laravel 应用程序,因此我的视图文件位于每个域的单独文件夹中。例如,以下内容:

return view('pages/' . $_SERVER['SERVER_NAME'] . '/public/home', []);
Run Code Online (Sandbox Code Playgroud)

应该在下面加载一个视图

pages/domain.com/public/home.blade.php
Run Code Online (Sandbox Code Playgroud)

但它试图加载

pages/domain/co/public/home.blade.php
Run Code Online (Sandbox Code Playgroud)

因为点符号。

我该如何解决这个问题?

Ben*_*rne 5

如果名称中有点,您需要添加一个视图命名空间来为特定文件夹设置提示。

$domain = 'domain.com';

View::addNamespace($domain, config('view.paths')[0]."/{$domain}/");

Route::get('example', function() use ($domain) {
    return view("{$domain}::home");
});
Run Code Online (Sandbox Code Playgroud)

您可以base_path('resources/views')在上面的示例中使用而不是,config('view.paths')[0]如果有人重新排序或更改的值,这可能更明智一些config('view.paths')