Thinkphp5学习(21)关联:一对一

本文通过创建用户与汽车的一对一关联模型,演示了如何在 ThinkPHP5 中实现数据的新增、查询、更新及删除操作。

学习内容:
视频教程:
https://www.kancloud.cn/tpshop/thinkphp5/228987
完全开发手册:https://www.kancloud.cn/manual/thinkphp5/142358
教程中的代码:https://github.com/phpervip/tp5a

创建一个汽车表,每个用户有一部车。

CREATE TABLE tp5.tp_car (
id INT(10) NOT NULL AUTO_INCREMENT,
user_id INT NOT NULL,
brand VARCHAR(45) NULL,
plate_number VARCHAR(45) NULL,
PRIMARY KEY (id, user_id));

model模型中

     // 定义关联方法
    public function car(){
        // 用户HAS ONE档案关联
        return $this->hasOne('Car','user_id','id');
    }

Controller控制器中

public function test19{
      $user = mUser::get(1);
        echo '车品牌:'.$user->car->brand."车牌号".$user->car->plate_number."<br/>";

        // 新增用户关联汽车
        $user =  new mUser;
        $user->email = '123@qq.com';
        $user->nickname = 'TPshop';
        $user->password = '123456';
        if($user->save()){
            $car['brand']='奔驰';
            $car['plate_number']='浙A12345';
            // uid不指定
             //$user->car()->save($car);// relation对象,添加一部车
             //return '用户['.$user->nickname.']新增成功';
        }else{
            //return $user->getError();
        }

        // 关联查询
        // $user = mUser::get(94);
        $user = mUser::get(94,'car');
        echo $user->email.'<br/>';
        echo $user->nickname.'<br/>';
        echo $user->car->brand.'<br/>';
        echo $user->car->plate_number.'<br/>';


        // 关联更新
        $user = mUser::get(94);
        $user->email = 'Tpshop@qq.com';
        if($user->save()){
            // 更新关联数据
            $user->car->plate_number = '浙A12345';
            $user->car->save();
            return '用户['.$user->email.']更新成功';
        }else{
            return $user->getError();
        }

        // 关联删除
        $user = mUser::get(94);
        if($user->delete()){
            $user->car->delete();
            return '用户['.$user->email.']删除成功';
        }else{
            return $user->getError();
        }
}

这里写图片描述

目 录 零、序言 一、基础 二、URL和路由 三、请求和响应 四、数据库 五、查询语言 六、模型和关联 (1)模型定义 (2)基础操作 (3)读取器和修改器 (4)类型转换和自动完成 (5)查询范围 (6)输入和验证 (7)关联 (8)模型输出 七、视图和模板 八、调试和日志 九、API开发 十、命令行工具 十一、扩展 十二、杂项 Session Cookie 验证码 文件上传 图像处理 单元测试 附录 A、常见问题集 B、3.2和5.0区别 C、助手函数 本文档使用 看云 构建- 2 - 零、序言 概述 ThinkPHP5.0 版本的优势在于: 更灵活的路由; 依赖注入; 请求缓存; 更强大的查询语法; 引入了请求/响应对象; 路由地址反解生成; 增强的模型功能; API开发友好; 改进的异常机制; 远程调试支持; 单元测试支持; 命令行工具; Composer支持; 本快速入门系列是官方出品的学习和掌握ThinkPHP5.0 不可多得的入门指引教程和标准参照,针对新手用 户给出了较易理解的使用。 本系列围绕WEB 开发和API 开发常用的一系列基础功能进行循序渐进的讲解。推荐在看完和理解快速入 门之后,再去通读官方的完全开发手册,会更容易理解。 希望支持ThinkPHP5的用户能够到Github给我们一个star^_^ 目前章节完成情况( √ 表示已经完成) 第零章、序言 √ 第一章、基础 √ 第二章、URL和路由 √ 第三章、请求和响应 √ 第四章、数据库 √ 第五章、查询语言 √ 零、序言 本文档使用 看云 构建- 3 - 第六章、模型和关联 √ 第七章、视图和模板 √ 第八章、调试大法 √ 第九章、API开发 √ 第十章、命令行工具 √ 第十一章、扩展√ 第十二章、杂项(更新中) 附录A、常见问题集
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值