FLOWERS开发日志(四)汉化与多数据库配置

laravel 自带模板汉化

laravel自带的auth模板是英文的。有大神开发了全套英文汉化ServiceProvier。
安装语言包:

$ composer require "overtrue/laravel-lang:~3.0"

在config/app.php中的providers数组中:

Illuminate\Translation\TranslationServiceProvider::class,

替换为:

Overtrue\LaravelLang\TranslationServiceProvider::class,

完成后,刷新,看到英文已经被翻译好了。

FLOWERS开发日志(四)汉化与多数据库配置

多数据库配置

考虑到后期的分库的问题,摸索了一下多数据库模式的操作。

###.env配置
把原来的DB_CONNECTION=mysql这段复制一份,改成其他的数据库配置,如下代码所示:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=flower
DB_USERNAME=homestead
DB_PASSWORD=secret

DB_HOST_BBS=127.0.0.1
DB_PORT_BBS=3306
DB_DATABASE_BBS=bbs
DB_USERNAME_BBS=homestead
DB_PASSWORD_BBS=secret

然后在config/database中的connections数组中添加配置:

'mysql_bbs' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST_BBS', '127.0.0.1'),
            'port' => env('DB_PORT_BBS', '3306'),
            'database' => env('DB_DATABASE_BBS', 'forge'),
            'username' => env('DB_USERNAME_BBS', 'forge'),
            'password' => env('DB_PASSWORD_BBS', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

migration

migration部分,这样配置:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateTestsTable extends Migration
{
    protected $connection = 'mysql_bbs';
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::connection('mysql_bbs')->create('tests', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('tests');
    }
}

model

我们执行php artisan migrate迁移以上代码中的migration配置。然后,创建一个model:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Test extends Model
{
    //
    protected $connection = 'mysql_bbs';
}

最后,我们在tinker中做一下测试。先执行php artisan tinker进入交互模式,然后执行:

>>> App\Test::create();
=> App\Test {#4083
     updated_at: "2020-09-14 18:42:46",
     created_at: "2020-09-14 18:42:46",
     id: 2,
   }
>>> 

插入成功。在bbs数据库中可以看到新增加的数据行了:

FLOWERS开发日志(四)汉化与多数据库配置

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!