Tp5的关联模型操作只hasOne【一对一】

首先 什么叫一对一

一个用户只能有一个身份证

一个用户只能有一个爸爸或者妈妈

新建 User表【主表】 userinfo表【副表】 副表提供关联id (user_id)
新建user模型类
<?php
namespace app\index\model;
use think\Model;
class User extends model
{
    //方法为表名
    public function userinfo()
    {
        //一对一 user表 关联 test表
        return $this->hasOne('Test','user_id','id');
    }

}
然后在model文件夹中新建userinfo模型类
副表可以是空类 存在即可
一对一的查询操作
////如果要根据关联表的查询条件查询当前模型的数据,可以使用hasWhere方法
$datas = User::hasWhere('picture',['goodstext'=>'愿你读完仍觉人间值得'])->find();
//用户信息与用户订单一起查出
$users = User::with('picture')->select([1,2,3]);
$user = User::get(1);
// 输出用户表中id为1 关联模型的email属性
echo $user->userinfo->email;
//例子2
//其中 userinfo与picture都是对象名也就是表名usermodel的方法名->字段名
    $user = User::get(1);
        // 输出Profile关联模型的email属性
        echo $user->picture->name;

一对一的模型添加
//接下里是一对一的关联新增
        $data = [
            'pic'=>'20191029/f046c9cfb51ef3a18d17873cecd30ce4.jpg',
            'price'=>'888',
            'name'=>'会努力的',
            'goodstext'=>'学习tp5的model操作'
            ];
        $user->picture()->save($data);
//就这样 我们给商品表添加了一个数据
////////重点是我们依靠usermodel添加时 会自动认为是user表id=1给这个数据的pid添加为用户id=1的数据///////
一对一的模型修改
//修改与新增的函数一样 修改picture的pid与用户id一致的某个值
//区别是修改是使用$user->picture
//而新增是$user->picture()
$user->picture->save(['goodstext' => '修改了你的商品介绍']);
一对一的模型删除
    $user->picture()->delete();
save操作记住 带括号的是添加 不带括号的是修改

添加
$user->picture()->save();
修改
$user->picture->save();

为您推荐

评论已关闭