二十五、PHP框架Laravel学习笔记——模型的一对一关联
2021/5/30 20:54:12
本文主要是介绍二十五、PHP框架Laravel学习笔记——模型的一对一关联,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一.关联概念
- 关联模型,即:两张或以上的表进行一定规则的绑定关联;
- 比如:一个学生(学生表)对应一张个人信息卡(信息表),这种就是一对一;
- 再比如:一篇博文(帖子表)对应多个评论(评论表),这种就是一对多;
- 再再比如:一个用户(用户表)对应多个职位(权限表), 而一个职位又可以有多个用户;那么,这种就是多对多关联;
- 自然,还有更多更复杂的关联,都是基于此的,我们只探讨这三种;
- 既然是关联,当然会有绑定的概念,当有数据库操作,关联表也会跟着变动;
- 这就是关联模型的意义;
二.一对一关联
-
一对一关联,我们选择两张表来做演示,首先看下两张表的结果对比;
PS:主表主键设为 id,关联主键默认就是 id,可以默认不写;
PS:附表的外键设置为 user_id,即:主表名_主键,吻合可默认不写; -
由于之前 Models 下的 User.php 模型代码很多了,改成.bak 后重建;
-
创建两个 model,User.php 和 Profile.php,并使用命令实现提示;
php artisan ide-helper:models
//User.php,一对一关联 Profile 表
public function profile() { //参数 1 或:'App\Http\Models\Profile' //参数 2:默认为 user_id,如不是需要指明 //参数 3:默认 id,如不是需要指明 return $this->hasOne(Profile::class, 'user_id', 'id'); }
- 注意:Profile.php 只要建立空类即可,不需要其它,一对一调用如下:
//注意:->profile 不要加括号,以属性方式访问
$profiles = User::find(19)->profile; return $profiles;
- 一对一也支持反向关联:定向反向关联;具体通过在 Profile 设置即可; //profile.php
//参数 1 为主表类
//参数 2,3 和正向一致,默认对应可以不写
public function user() { return $this->belongsTo(User::class, 'user_id', 'id'); } $users = Profile::find(1)->user; return $users;
这篇关于二十五、PHP框架Laravel学习笔记——模型的一对一关联的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享
- 2024-11-01开源 PHP 商城项目 CRMEB 安装和使用教程
- 2024-11-01用php和mysql写无限分类,有哪几种方法-icode9专业技术文章分享
- 2024-10-31php数据分表导出时部分数据无法导出什么原因-icode9专业技术文章分享
- 2024-10-30有经验的 PHP 开发者学习一门新的编程语言,有哪些推荐的有前景的语言-icode9专业技术文章分享
- 2024-10-21php 检测图片是否篡改过-icode9专业技术文章分享