初学TP框架的第三天,实践中遇到需要链表查询的需求,翻看手册发现手册写的方法完全不顶用,翻了下百度,结合之前学习过的Laravel 框架中的模型关联和常规列表方法总算达到需求目的了,防止遗忘先记录下。
模型法
//模型文件 Record.php
<?php
namespace app\index\model;
use think\Model;
class Record extends Model
{
// 设置当前模型对应的完整数据表名称
// protected $table = "eve_record";
//设置关联
public function profile()
{
//关联模型名称,关联模型主键, 当前文件的模型条件
return $this->hasOne('Item', 'i_id', "r_i_id")->field("i_id,i_title");
}
}
//方法中调用
$record = new Record();
$record = Record::get();//该处有个坑 无法使用 select和all 只能使用get或find 且查询只有一条数据
dump($record);
//结果
["data":protected] => array(2) {
["i_id"] => string(1) "2"
["i_title"] => string(1) "测试"
}
Join方法
//实例化记录类
$record = new Record();
//查询记录数据 [连接表名,主表关联字段 = 链表查询字段] 该方法可以为每条数据取出关联信息
$data = $record->join('eve_item', 'eve_record.r_i_id = eve_item.i_id')->select();