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

时间:2015-11-15 15:19:59

标签: php laravel routing

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

return view('pages/' . $_SERVER['SERVER_NAME'] . '/public/home', []);

应加载

下的视图
pages/domain.com/public/home.blade.php

但是它试图加载

pages/domain/co/public/home.blade.php

因为点符号。

我该如何解决这个问题?

3 个答案:

答案 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',[]);