我正在创建一个多域Laravel应用,因此我的视图文件位于每个域的单独文件夹中。例如,以下内容:
return view('pages/' . $_SERVER['SERVER_NAME'] . '/public/home', []);
应加载
下的视图pages/domain.com/public/home.blade.php
但是它试图加载
pages/domain/co/public/home.blade.php
因为点符号。
我该如何解决这个问题?
答案 0 :(得分:3)
如果名称中有点,则您需要添加一个视图命名空间来设置特定文件夹的提示。
$domain = 'domain.com';
View::addNamespace($domain, config('view.paths')[0]."/{$domain}/");
Route::get('example', function() use ($domain) {
return view("{$domain}::home");
});
您可以使用base_path('resources/views')
而不是上面示例config('view.paths')[0]
,如果有人重新排序或更改config('view.paths')
答案 1 :(得分:1)
也许你可以用下划线替换点:
$domain = str_replace('.', '_', $_SERVER['SERVER_NAME']);
return view('pages/' . $domain . '/public/home');
并加载视图:
pages/domain_com/public/home.blade.php
答案 2 :(得分:-1)
应该有效
return view('pages/domain.com/public/home',[]);