【问题标题】:Laravel - Multi Site/ProjectLaravel - 多站点/项目
【发布时间】:2016-12-02 12:15:10
【问题描述】:

我目前正在寻找一个框架来支持我自己的新框架。 Laravel 似乎是我最好的选择。

我有一个非常具体的结构。我的项目将有一个带有通用模型、视图和控制器的基本设计,以及一些带有特定视图的子项目。目标是为同一业务的所有者提供一个平台,我们提供一个独特的网站。在许多情况下,只有设计不同,而结构和组件保持不变。我的想法是在 laravel 上创建一个可维护的结构,每个站点都从中提取其模型、控制器和视图,如果有特定需要,可以创建额外的视图。

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

我看到了一些主要障碍:

  • 创建子项目
  • 使用多数据库连接
  • 使用主项目中的模型和视图

project setup

【问题讨论】:

    标签: php database laravel project-setup


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 2019-09-13
      • 1970-01-01
      • 2011-03-23
      相关资源
      最近更新 更多