繁体   English   中英

Laravel 4-通过公用文件夹名称/路径获取环境

[英]Laravel 4 - Get environment by public folder name/path

我目前正在为当前的laravel 4项目开发“多站点”功能(就像WordPress一样)。

最简单的方法(在我看来)将复制公用文件夹为每个站点,那么它仍然使用相同的核心,但你也可以为每个网站编辑的资产。 仍然需要完成的唯一事情是每个站点的数据库配置不同。

我试图根据当前使用的公用文件夹的名称/路径来检测环境。 但是,当我尝试在bootstrap / start.php文件中使用public_path()时,将导致此错误:

致命错误:在第685行上的vendor \\ laravel \\ framework \\ src \\ Illuminate \\ Support \\ helpers.php中的非对象上调用成员函数make()

我怎样才能做到这一点?

在laravel中,它实际上更简单。

Route::group(['domain' => 'subdomain1.example.com'], function(){
    //rotues for subdomain 1
});

Route::group(['domain' => 'subdomain2.example.com'], function(){
    //rotues for subdomain 2
});

我为每个域使用带有名称空间的嵌套控制器。

例如

子域1

controllers/subdomain1/HomeController
....

子域2

controllers/subdomain2/HomeController
.... 

用于配置

Config/subdomain1/database.php (e.g.)

Config/subdomain2/database.php (e.g.)

然后设置环境

$env = $app->detectEnvironment(array(
    'local' => ['*.dev', gethostname()],
    'subdomain1' => ['subdomain1.example.com'],
    'subdomain2' => ['subdomin2.example.com']
));

....就是这样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM