前多时间做的项目遇到一个框架内使用多个数据库操作,然后就去扒手册结果在手册里就找到这么几句话
看完了只是知道如何使用,并没有找到如何操作,在看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; 就是关闭自动维护