21、ThinkPhP5:关联-三(一对一)

新建Car.php模型,Users.php两个模型。

1、在Users模型里写个方法

        public function car(){
            
            return $this->hasOne('Car','uid','user_id'); //hasOne 一对一关系
            
        }
        

2、一对一关联查询

        $user = Users::get(1); //$user->car 直接拿car对象
        echo '车牌'.$user->car->brand.'号码:'.$user->car->plate_number.'<br>';
        //车牌宝马号码:川A123652
        //SELECT * FROM `tp_users` WHERE `user_id` = 1 LIMIT 1
        //SELECT * FROM `tp_car` WHERE `uid` = 1 LIMIT 1

3、一对一关联新增

        $user = new Users();
        $user->email = '12345@qq.com';
        $user->nickname = 'TPshop';
        $user->password = '123456';
        
        if($user->save()){
            $car['brand'] = '奔驰';
            $car['plate_number'] = '粤A1123123';
            $user->car()->save($car);
            return '用户【'.$user->nickname.'】新增成功!';
        }else{
            return $user->getError();
        }
INSERT INTO `tp_users` (`email` , `nickname` , `password`) VALUES ('12345@qq.com' , 'TPshop' , '123456') 
INSERT INTO `tp_car` (`brand` , `plate_number` , `uid`) VALUES ('奔驰' , '粤A1123123' , 46)

4、一对一关联更新

        //一对一关联更新
        $user = Users::get(1);
        $user->email = 'TPshop@qq.com';
        if($user->save()){
            $user->car->plate_number='川A123652';
            $user->car->save();
            return '用户【'.$user->email.'】更新成功!';
        }else{
            return $user->getError();
        }
SELECT * FROM `tp_users` WHERE `user_id` = 1 LIMIT 1
UPDATE `tp_users` SET `email`='TPshop@qq.com' WHERE `user_id` = 1

5、一对一关联查寻

        $user = Users::get(41); //$user = Users::get(41,'car');
        echo $user->email.'<br>';
        echo $user->nickname.'<br>';
        echo $user->car->brand.'<br>';

结果为:
TPshop@qq.com
a:1:{s:2:"aa";i:11;}
宝马

6、一对一关联删除

        //一对一关联删除
        $user = Users::get(1);
        if($user->delete()){
            $user->car->delete();
            return  '用户【'.$user->email.'】删除成功!';
        }else{
            return $user->getError();
        }
SELECT * FROM `tp_users` WHERE `user_id` = 1
DELETE FROM `tp_users` WHERE `user_id` = 1
SELECT * FROM `tp_car` WHERE `uid` = 1 LIMIT 1
DELETE FROM `tp_car` WHERE `id` = 1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值