这个我们可以从laravel的源码得到一些有用的信息
他是依赖这个DB是依赖门面模式的,跳转进去得到他主要依赖两个class,DatabaseManager跟Connection
比如说我想用DB里面的table方法,那么可以找一下这个方法是属于什么,他是属于Connection里面的一个方法,这样我们就明白了,只要实例化好这个Connection就可以用了
这样就可以简单的使用了
$dbms='mysql'; //数据库类型
$host='localhost'; //数据库主机名
$dbName='test'; //使用的数据库
$user='root'; //数据库连接用户名
$pass=''; //对应的密码
$dsn="$dbms:host=$host;dbname=$dbName;port=3306";
\DB::query();
$db = new Connection(new \PDO($dsn, $user, $pass), '', '', [
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
]);
$model = AdminRoleModel::select('*');
var_dump($db->table($db->raw("({$model->toSql()}) as tmp"))->mergeBindings($model->getQuery())->get()->toArray());