我目前正在研究"多站点"我目前的laravel 4项目的功能(就像WordPress一样)。
最简单的方法(在我看来)是复制每个网站的公共文件夹,然后它仍然使用相同的核心,但您也可以编辑每个网站的资产。唯一仍需要完成的是每个站点的不同数据库配置。
我尝试根据当前使用的公用文件夹的名称/路径检测环境。但是,当我尝试在 bootstrap / start.php 文件中使用public_path()
时,会导致此错误:
致命错误:在非对象中调用成员函数make() vendor \ laravel \ framework \ src \ Illuminate \ Support \ helpers.php在线 685
我该怎么做?
答案 0 :(得分:-1)
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']
));
....那就是它。