TP5 一对一关联

1, 定义一对一关联hasOne()

例如: Article 模型中 关联category 模型

    //关联分类一对一
	//hasOne(‘关联模型名’,‘外键名’,‘主键名’,[‘模型别名定义’],‘join类型’);
	public function category(){
		return $this->hasOne('category', 'categoryid', 'categoryid');
	}

2, 关联查找

a/ 获取关联模型中的某个字段值

$category_name = Article::get(1)->category->category_name;

b/ 根据 关联表 的查询条件查询当前模型的数据

$data = Article::hasWhere( 'category', [ 'category_name' => '测试'])->find();

c/ 关联预载入

//关联预载入分类表和用户表的全部信息
$data0 = Article::field('id,categoryid,title_name')->with( 'category,user')->select();
//关联预载入分类表部分字段信息
$data = Article::field( 'id,categoryid,title_name')->with([ 'category' => function ($query) {
			$query->field( 'categoryid,category_name');
		}])->select();

//echo '<pre>';print_r($data->toArray());
/*  Array
(
    [0] => Array
        (
            [id] => 1
            [categoryid] => 1
            [title_name] => 测试1
            [category] => Array
                (
                    [category_name] => a分类
                    [categoryid] => 1
                )

	)
	[1] => Array
        (
            ...

	)
)*/

3, 相对关联

例如: category 模型中 关联Article 模型

//定义相对关联
public function article(){
    return $this->belongsTo( 'article', 'categoryid', 'categoryid');
}

根据分类来获取文章模型的信息:

$user = Category::get(1)->article->id;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值