2016-12-02 52 views
-2

我目前正在寻找一个框架来支持我自己的新框架。拉拉维尔似乎是我最好的选择。Laravel - 多站点/项目

我有一个非常具体的结构。我的项目将有一个基础设计,包括常见的模型,视图和控制器,以及一些具有特定视图的子项目。我们的目标是为同一业务的所有者提供一个平台,在那里我们提供一个独特的网站。在许多情况下,只有设计不同,而结构和组件保持不变。我的想法是在laravel上创建一个可维护的结构,其中每个站点都会从其中拖出模型,控制器和视图,如果有特定需求,可以创建一个附加视图。

过去有人有过类似项目的经验吗?

我看到一些主要的障碍:

  • 创建子项目
  • 采用多数据库连接
  • 使用模型和视图从主体工程

project setup

回答

3

Laravel是非常灵活和高度可配置,你应该没有问题做这样的事情。至于数据库,例如,您可以创建两个连接:main,固定连接到主数据库表,并project当前项目表,这里是它应该是什么样子:

'main' => [ 
    'driver' => 'pgsql', 
    'host' => env('DB_HOST', 'localhost'), 
    'port' => env('DB_PORT', '5432'), 
    'database' => env('DB_DATABASE', 'forge'), 
    'username' => env('DB_USERNAME', 'forge'), 
    'password' => env('DB_PASSWORD', ''), 
    'charset' => 'utf8', 
    'prefix' => '', 
    'schema' => 'public', 
    'sslmode' => 'prefer', 
], 

'project' => [ 
    'driver' => 'pgsql', 
    'host' => env('DB_HOST', 'localhost'), 
    'port' => env('DB_PORT', '5432'), 
    'database' => env('DB_DATABASE', 'forge'), 
    'username' => env('DB_USERNAME', 'forge'), 
    'password' => env('DB_PASSWORD', ''), 
    'charset' => 'utf8', 
    'prefix' => '', 
    'schema' => 'public', 
    'sslmode' => 'prefer', 
], 

,你应该能:

配置模型连接:直接

<?php 

namespace App; 

class Posts extends Model 
{ 
    protected $connection = 'project'; 
} 

查询连接:

DB::connection('project')->table('users')->where('activated', true)->get(); 

配置数据库中运行时间:

config([ 
    'database.connections.project.database' => 'project1db', 
    'database.connections.project.user' => $user, 
    'database.connections.project.password' => $password, 
]); 

至于意见,你可以告诉Laravel找到的看法,无论你需要通过简单地做:

View::addLocation('/path/to/project1/');