Laravel5.1 框架模型远层一对多关系实例分析
时间:2022-07-27
本文章向大家介绍Laravel5.1 框架模型远层一对多关系实例分析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例讲述了Laravel5.1 框架模型远层一对多关系。分享给大家供大家参考,具体如下:
远层一对多我们可以通过一个例子来充分的了解它:
每一篇文章都肯定有并且只有一个发布者 发布者可以有多篇文章,这是一个一对多的关系。一个发布者可以来自于一个国家 但是一个国家可以有多个发布者,这又是一个一对多关系,那么 这其中存在一个远层的一对多就是”国家和文章的关系”。国家表可以通过发布者表远层关联到文章表。
1 实现远层一对多关系
1.1 文章表结构
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table- increments('id');
$table- string('title');
$table- text('body');
$table- integer('user_id');
$table- timestamps();
});
}
1.2 在users表中添加一列
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table- integer('country_id');
});
}
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table- dropColumn('country_id');
});
}
1.3 国家表结构
public function up()
{
Schema::create('countries', function (Blueprint $table) {
$table- increments('id');
$table- string('name');
$table- timestamps();
});
}
1.4 编写一对多关系
首先是Country和User的关系:
Country模型:
public function users()
{
return $this- hasMany(User::class);
}
User模型:
public function country()
{
return $this- belongsTo(Country::class);
}
然后是User和Article的关系:
User模型:
public function articles()
{
return $this- hasMany(Article::class);
}
Article模型:
public function user()
{
return $this- belongsTo(User::class);
}
1.5 访问远程一对多关系
这是今天的主要内容,实现Country可远层查找到Article:
public function articles()
{
/**
* 建议第一个和第二个参数写全,第三个第四个参数可省略使用默认(如果默认的没问题)。
*/
return $this- hasManyThrough(Article::class, User::class, 'country_id', 'user_id');
}
更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 如何测试Linux下tcp最大连接数限制详解
- Linux中利用Vim对文件进行密码保护的方法详解
- Linux中禁止用户修改/重置密码
- 详解 MAC/Linux Vi配置环境变量及Java环境变量配置
- 扒开DMA映射的内裤
- 如何理解与识别Linux中的文件类型
- ubantu 16.4下Hadoop完全分布式搭建实战教程
- Linux定时删除日志的简单实现方法
- ubuntu如何安装中文输入法
- Ubuntu18.04安装Python虚拟环境
- linux下查看so或可执行程序的依赖库
- Linux中crontab输出重定向不生效问题的解决方法
- Ubuntu中安装MySQL更改默认密码的步骤详解
- linux下用csplit命令分割文件的方法示例
- Linux基础命令之mktemp详解