二十五、PHP框架Laravel学习笔记——模型的一对一关联

二十五、PHP框架Laravel学习笔记——模型的一对一关联,第1张

概述一.关联概念关联模型,即:两张或以上的表进行一定规则的绑定关联;比如:一个学生(学生表)对应一张个人信息卡(信息表),这种就是一对一;再比如:一篇博文(帖子表)对应多个评论(评论表),这种就是一对多;再再比如:一个用户(用户表)对应多个职位(权限表),而一个职位又可以有多个用户;那么,这种就 一.关联概念关联模型,即:两张或以上的表进行一定规则的绑定关联;@H_301_8@比如:一个学生(学生表)对应一张个人信息卡(信息表),这种就是一对一;@H_301_8@再比如:一篇博文(帖子表)对应多个评论(评论表),这种就是一对多;@H_301_8@再再比如:一个用户(用户表)对应多个职位(权限表), 而一个职位又可以有多个用户;那么,这种就是多对多关联;@H_301_8@自然,还有更多更复杂的关联,都是基于此的,我们只探讨这三种;@H_301_8@既然是关联,当然会有绑定的概念,当有数据库 *** 作,关联表也会跟着变动;@H_301_8@这就是关联模型的意义;@H_301_8@二.一对一关联

一对一关联,我们选择两张表来做演示,首先看下两张表的结果对比;


PS:主表主键设为 ID,关联主键默认就是 ID,可以默认不写;
PS:附表的外键设置为 user_ID,即:主表名_主键,吻合可默认不写;

@H_301_8@

由于之前 Models 下的 User.PHP 模型代码很多了,改成.bak 后重建;

@H_301_8@

创建两个 model,User.PHP 和 Profile.PHP,并使用命令实现提示;

@H_301_8@
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 不要加括号,以属性方式访问@H_301_8@
$profiles = User::find(19)->profile; return $profiles;
一对一也支持反向关联:定向反向关联;具体通过在 Profile 设置即可; //profile.PHP
//参数 1 为主表类
//参数 2,3 和正向一致,默认对应可以不写@H_301_8@
public function user() { 	return $this->belongsTo(User::class, 'user_ID', 'ID'); }	$users = Profile::find(1)->user; 	return $users;

总结

以上是内存溢出为你收集整理的二十五、PHP框架Laravel学习笔记——模型的一对一关联全部内容,希望文章能够帮你解决二十五、PHP框架Laravel学习笔记——模型的一对一关联所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1001860.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存