thinkPHP数据库关联笔记

臭大佬 2017-09-18 22:45:20 1130
php 
简介 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');
    }
}