TP6数据库配置文件,配置多个数据库连接信息,使用不是默认数据库连接进行数据查询
1.调整数据配置文件
在全局或者应用配置目录database.php中
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
'type' => 'mysql',
'hostname' => '127.0.0.1',
],
'sqlsrv' => [
'type' => 'sqlsrv',
'hostname' => '127.0.0.1',
],
],
];
SQLsever数据库中订单表和订单明细表,结构简化: 订单表(store_order):id(订单ID),order_sn(订单编号),order_money(订单金额)... 订单明细表(store_order_goods):order_id(订单ID),goods_id(商品id),goods_num(商品数量) ...
2.使用模型类定义
在模型类里面定义了connection属性,该模型操作的时候会自动按照给定的数据库配置进行连接,而不是配置文件中设置的默认连接信息:
StoreOrder.php模型文件
hasMany(‘关联模型’,‘外键’,‘主键’);
<?php
namespace app\model;
use think\Model;
class StoreOrder extends Model
{
protected $connection = 'sqlsrv';
public function orderGoods()
{
return $this->hasMany(StoreOrderGoods::class,'order_id', 'id');
}
}
StoreOrderGoods.php模型文件
<?php
namespace app\model;
use think\Model;
class StoreOrderGoodsextends Model
{
protected $connection = 'sqlsrv';
}
此处需要对两个表进行创建对应的模型文件,然后对其模型使用一对多关联
关联查询
我们可以通过下面的方式获取关联数据
$data = StoreOrder::with('orderGoods');
dump($data->select());
dump($data->where('status',1)->select());
结束
以上就是使用ThinkPHP6对不是默认数据库,使用模型关联进行表查询多表数据
|