前多时间做的项目遇到一个框架内使用多个数据库操作,然后就去扒手册结果在手册里就找到这么几句话
看完了只是知道如何使用,并没有找到如何操作,在看databa.php文件时才恍然大悟
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => 'tbl_', 'strict' => false, ], 'keweiwang' => [ 'driver' => 'mysql', 'host' => 'localhost', 'port' => '3306', 'database' => 'keweiwang', 'username' => 'root', 'password' => '666', 'charset' => 'utf8', 'collation'=> 'utf8_unicode_ci', 'prefix' => 'wemall_', 'strict' => false, 'engine' => null,
然后可以用手册给出的方法操作
$users = DB::connection('keweiwang')->select(...);
到这里其实也可以用model 来操作数据库
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class WemallUser extends Model { // 数据库'keweiwang'中的user表 public $connection = 'keweiwang'; public $table = "user"; public $timestamps = false; // public static function select(){ // $connection = 'keweiwang'; // $table = "user"; // return 'select * from user'; // } }
指定下要链接的数据库和表
默认情况下,Eloquent 会预计你的数据表中有 created_at
和 updated_at
字段。如果你不希望让 Eloquent 来自动维护这两个字段,可在模型内将 $timestamps
属性设置为 false
:
这句 public $timestamps = false; 就是关闭自动维护