FLOWERS开发日志(四)汉化与多数据库配置
laravel 自带模板汉化
laravel自带的auth模板是英文的。有大神开发了全套英文汉化ServiceProvier。
安装语言包:
$ composer require "overtrue/laravel-lang:~3.0"
在config/app.php中的providers
数组中:
Illuminate\Translation\TranslationServiceProvider::class,
替换为:
Overtrue\LaravelLang\TranslationServiceProvider::class,
完成后,刷新,看到英文已经被翻译好了。
多数据库配置
考虑到后期的分库的问题,摸索了一下多数据库模式的操作。
###.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数据库中可以看到新增加的数据行了:
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: