热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

学习内容:视频教程:https:www.kancloud.cntpshopthinkphp5228987完全开发手册:https:www.kancloud.cnmanual

学习内容:
视频教程:
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."
"
;

// 新增用户关联汽车
$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.'
'
;
echo $user->nickname.'
'
;
echo $user->car->brand.'
'
;
echo $user->car->plate_number.'
'
;


// 关联更新
$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();
}
}

这里写图片描述


推荐阅读
  • 如何在Lua中调用C语言编译的动态链接库
    本文介绍了如何在Lua中调用C语言编译的动态链接库。通过详细步骤和示例代码,帮助开发者理解和掌握这一技术。参考了《Lua编程入门》一书中的相关内容,并结合实际操作经验,提供了更加清晰和实用的指导。此外,还探讨了在不同操作系统下编译和链接Lua的方法,为跨平台开发提供了有价值的参考。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • Java 中 Writer flush()方法,示例 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文详细介绍了如何在PHP中进行数组删除、清空等操作,并提供了在Visual Studio Code中创建PHP文件的步骤。 ... [详细]
  • 实现Nginx对ThinkPHP URL重写及PATHINFO支持的详细方法解析【PHP开发】
    在PHP后端开发中,实现Nginx对ThinkPHP的URL重写及PATHINFO支持是一项常见的需求。本文详细解析了经过多次尝试和研究,最终找到的一种有效配置方法,能够确保URL_MODERewrite功能正常运行,并提供稳定的服务。此外,文章还探讨了相关配置项的具体作用及其优化建议,帮助开发者更好地理解和应用这些技术。 ... [详细]
author-avatar
顾久君_152_599
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有