2016-12-02 66 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/');