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

时间:2014-11-15 17:05:21

标签: php laravel laravel-4

我目前正在研究"多站点"我目前的laravel 4项目的功能(就像WordPress一样)。

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

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

  

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

我该怎么做?

1 个答案:

答案 0 :(得分:-1)

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

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

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

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

e.g。

Subdomain1

controllers/subdomain1/HomeController
....

Subdomain2

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']
));

....那就是它。