2016-12-02 3 views
-2

현재 새 프레임 워크를 지원하는 프레임 워크를 찾고 있습니다. Laravel이 최선의 선택 인 것 같습니다.Laravel - Multi Site/Project

저는 매우 구체적인 구조를 염두에두고 있습니다. 내 프로젝트에는 일반적인 모델, 뷰 및 컨트롤러뿐만 아니라 특정보기가있는 일부 하위 프로젝트가 포함 된 기본 디자인이 있습니다. 목표는 고유 한 웹 사이트를 제공하는 동일한 비즈니스 소유자의 플랫폼을 제공하는 것입니다. 많은 경우 구조와 구성 요소가 동일하게 유지되는 반면 설계는 다양합니다. 내 생각은 모든 사이트에서 모델, 컨트롤러 및 뷰를 가져 오는 laravel에 유지할 수있는 구조를 만드는 것이 었습니다. 특정 필요성이있는 경우 추가보기를 만들 수 있습니다.

과거에 누군가가 simular 프로젝트 경험이 있습니까?

  • 다중 데이터베이스 연결

project setup

답변

3

Laravel는 메인 프로젝트에서 모델과 뷰를 사용

  • 을 사용하여 하위 프로젝트
  • 만들기 :

    나는 몇 가지 큰 장애물을 참조 매우 유연하고 고도로 구성 가능합니다. 문제가 없어야합니다. 그런 것들을하는 것. 데이터베이스에 관해서는, 예를 들어, 두 개의 연결을 만들 수 있습니다

    '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', 
    ], 
    

    그리고 당신은해야한다 : main, 메인 데이터베이스 테이블에 고정 된 연결 및 현재 프로젝트 테이블에 대한 project을, 여기가 어떻게 보일지입니다

    구성 모델 연결 :

    <?php 
    
    namespace App; 
    
    class Posts extends Model 
    { 
        protected $connection = 'project'; 
    } 
    

    쿼리 연결을 직접 :

    수에 수

    구성 런타임에서 데이터베이스 : 당신은 단순히 수행하여 필요한 곳마다 전망에 관해서는

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

    , 당신은 전망을 찾을 수 Laravel을 알 수 있습니다 :

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