thinkPHP数据库关联笔记
简介
thinkPHP数据库关联笔记
thinkphp官方给的文档不好理解,尤其是belongTo和hasOne两个很常用,而且参数也差不多,我每次用thinkphp模型关联的时候都要试着打印一下结果才知道哪样写才是对的,所以在这里记录一下,方便下次用的时候查阅!
定义相对的关联 belongsTo
belongsTo('要关联模型名','外键名(本模型中的字段)','关联表主键名(要关联模型的对应字段)',['模型别名定义'],'join类型');
模型定义:
namespace app\home\model;
class News extends Base{
public function user()
{
return $this->belongsTo('MemberList','news_auto', 'member_list_id');
}
}
控制器中调用用例:
namespace app\home\controller;
use think\Db;
use \app\home\model\News;
class Article extends Base
{
public function index()
{
$art = News::get(41);
echo $art->user->member_list_username;
}
}
定义关联 hasOne
hasOne('要关联模型名','外键名(要关联模型的对应字段)' , '主键名(本模型中的字段)',['模型别名定义'],'join类型');
模型定义:
namespace app\report\model;
class User extends BaseModel
{
/**
* 一对一关联Business模型
* @return \think\model\relation\HasOne
*/
public function business()
{
return $this->hasOne('Business', 'id', 'business_id');
}
}