tp5 一对一关联hasOne、belongsto使用

本文介绍了如何区分数据库中的主从表,主要依据是外键的存在位置。此外,详细阐述了hasOne和belongsTo这两种一对多关联关系在模型层的实现,通过Category和Brand模型的实例展示了如何在ThinkPHP框架中进行操作。文章还提供了相关控制器中的代码示例,演示了如何获取和展示关联数据。
摘要由CSDN通过智能技术生成

1主表从表如何区分?

看外键,外键在哪个表哪个表就是从表。

2.hasOne

主从关系表使用hasOne

 category为主表,brand为从表 ,这个时候我们在Category模型层书写一对一关联的时候就要使用hasOne,方法名要使用关联模型层的名字,例如这里关联的Brand模型层的brand表,

 

Category模型层

<?php

namespace app\admin\model;

use think\Model;

class Category extends Model
{
    protected $table = "pyg_category";
    protected $pk = 'id';
    function category()
    {
       return $this->with('brand')->select();
    }
    function brand()
    {
        return $this->hasOne('Brand','cate_id');
    }

}

goods控制器

function brand()
{
    $goods =new Brand();
    $data =\collection($goods->brand())->toArray();
    echo '<pre>';
    print_r($data);
}
function category()
{
    $goods = new Category;
    $data = $goods->category();
    $data  = \collection($data)->toArray();
    echo '<pre>';
    print_r($data);

}

3、belongsto 

从主关系表使用belongsto

<?php

namespace app\admin\model;

use think\Model;

class Brand extends Model
{
    protected $table = 'pyg_brand';
    protected $pk = 'id';
    function brand()
    {
        return $this->with('category')->select();
    }

    function category()
    {
//        belongsTo参数('模型名','外键id','主键id'),参数2和参数3均为可选项,可写可不写,一般参数2会写
        return $this->belongsTo('Category','cate_id');
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值