Laravel5.1 模型 --一对多关系
一对多关系算是比较常用的一种关联关系了,关于一对多我们可以用 文章对应评论 来举例:一篇文章可以有多个评论,但是一个评论只属于一篇文章。 这就是一对多关系。
1 实现一对多关系
我们先来准备两个模型,一个是文章表,另一个是评论表。其中评论表声明外键。
1.1 评论表结构
public function up()
{
Schema::create('comments', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body');
$table->integer('article_id'); // 外键
$table->timestamps();
});
}
1.2 编写关系
首先我们来声明Comment的:
class Comment extends Model
{
protected $fillable = ['title', 'body', 'article_id']; public function article()
{
/**
* 第二个参数是外键,我们的外键是article_id 如果我们省略了外键 laravel会自动以方法名article 连上_id来组成外键:article_id
* 第三个参数是我们的外键对应article表的那个键,我们这里是id,可以省略。
*/
return $this->belongsTo(Article::class, 'article_id', 'id');
}
}
然后是Article模型:
public function comments()
{
return $this->hasMany(Comment::class, 'article_id', 'id');
}
Laravel5.1 模型 --一对多关系的更多相关文章
- Laravel5.1 模型 --多对多关系
多对多关系也是很常用的一种关系,比如一篇文章可以有多个标签,一个标签下也可以有多篇文章,这就是一个典型的多对多的关系. 1 实现多对多关系 多对多关系我们需要三张表,一张是文章另一张是标签,第三章表是 ...
- Laravel5.1 模型 --远层一对多关系
远层一对多我们可以通过一个例子来充分的了解它: 每一篇文章都肯定有并且只有一个发布者 发布者可以有多篇文章,这是一个一对多的关系.一个发布者可以来自于一个国家 但是一个国家可以有多个发布者,这又是一个 ...
- Laravel5.1 模型 --一对一关系
这篇文章主要记录模型的一对一关系,关联关系是Model的一种非常方便的功能. 1 实现一对一关系 1.1 准备工作 首先我们需要创建两张表和对应的两个模型,第一个模型是用户表,第二个模型是账号表. 这 ...
- [NHibernate]一对多关系(级联删除,级联添加)
目录 写在前面 文档与系列文章 一对多关系 一个例子 级联删除 级联保存 总结 写在前面 在前面的文章中,我们只使用了一个Customer类进行举例,而在客户.订单.产品中它们的关系,咱们并没有涉及, ...
- [转]NHibernate之旅(9):探索父子关系(一对多关系)
本节内容 引入 NHibernate中的集合类型 建立父子关系 父子关联映射 结语 引入 通过前几篇文章的介绍,基本上了解了NHibernate,但是在NHibernate中映射关系是NHiberna ...
- Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理
Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理 本博文主要介绍 Laravel 框架中 Eloquent 对一对多关系的处理以及在 Laravel Administra ...
- django的models模型 关联关系和关系查询
模型类关系 关系字段类型 关系型数据库的关系包括三种类型: ForeignKey:一对多,将字段定义在多的一端中. ManyToManyField:多对多,将字段定义在两端中. OneToOneFie ...
- laravel orm 中的一对多关系 hasMany
个人对于laravel orm 中对于一对多关系的理解 文章表 article,文章自然可以评论,表 comment 记录文章的评论,文章和评论的关系就是一对多,一篇文章可以有多个评论. 在 comm ...
- elasticsearch 6.x 处理一对多关系使用场景
思考:一个用户有多篇博客,如何查询博客作者姓名中带“旺”字.博客标题中带“运”的10篇博客列表 elasticsearch关联模型: 一: 应用层做联接2个索引博客作者.博客发布先从博客作者中查询出符 ...
随机推荐
- JAMon监控web工程方法的调用性能
JAMon简介 JAMon的全名是:Java Application Monitor.它是一个小巧的,免费的,高性能的,线程安全的性能监测工具. 它可以用来测定系统的性能瓶颈,也可以用来监视用户和应用 ...
- Windows下启动Solr报错:Nothing to start,exiting...
如果用java -jar start.jar命令启动Solr时报错:Nothing to start,exiting...,可尝试: 百度jetty,上官网下载压缩包并解压(下载页面地址:http:/ ...
- Zigbee事件
ZIGBEE事件有两类.系统定义事件和用户定义事件. 系统类事件是协议栈已定义好的.用户类事件是我们用户层面来定义的. 事件类号採用一个16bit的常量,使用独热码编码,独热码是仅仅有一个bit为1, ...
- 经验总结54--搭建linux虚拟机环境
好久没写博客了.写一篇环境搭建吧. 自己做java,有时会接触linux环境,自己能够搭建一个,方便自己做实验和学习. 1.下载VM11. 下载并依照VM:http://rj.baidu.com/so ...
- Failed to Stop or Restart Nginx Server Through Serevice Command(nginx进程不能停止重启)
Many people are accustomed to start a Nginx web server through init scripts and then they can contro ...
- Jmeter-性能测试(三)
一.调通脚本(以json串Post接口为例)添加聚合报告(线程组->添加->监听器->聚合报告)并调试好需要压测的脚本,如下已经调通的P_C_B151就是我需要压测的脚本 二.设置场 ...
- Coolite简介
Coolite Toolkit 简介 Coolite Toolkit 是一个支持ASP.NET AJAX的Web控件 Coolite Toolkit是基于跨浏览器的ExtJS 库开发而来的,并且简化了 ...
- 很实用的JQuery代码片段(转)
1 元素屏幕居中 jQuery.fn.center = function () { this.css("position","absolute"); this. ...
- Atitit.软件开发的非功能性需求attilax 总结At
Atitit.软件开发的非功能性需求attilax 总结 1. 运行环境约束:用户对软件系统运行环境的要求. 1 2. 兼容性 2 3. 7.6 数据库 database (imp by ati) ...
- 浅谈C语言中断处理机制
一.中断机制 1.实现中断响应和中断返回 当CPU收到中断请求后,能根据具体情况决定是否响应中断,如果CPU没有更急.更重要的工作,则在执行完当前指令后响应这一中断请求.CPU中断响应过程如下:首先, ...