Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理

Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理

        本博文主要介绍 Laravel 框架中 Eloquent  对一对多关系的处理以及在 Laravel Administrator(后台扩展包)中的应用。

        您的数据库可能是彼此相关的。比方,一篇博客文章可能有很多评论,或者一个订单与下订单的用户相关。Eloquent 使得管理和处理这些关系变得简单。Laravel 提供了四种类型的关系: -一对一 -一对多 -多对多 - 多态关系

      一对多

一个一对多关系的样例是一篇博客文章有很多评论或者一个课程有的多次分数信息等。

我们能够像这样定义关系模型 Model:

<?php
/*** sobjectinfo:课程信息表 Model* soc_id     :主键自增* soc_name   :课程名* soc_teacher:授课老师**/
class SobjectInfo extends Eloquent {//自己定义表名(protected $table)protected $table = 'sobjectinfo';//自己定义主键(protected $primaryKey)protected $primaryKey = 'soc_id';//关闭 创建时间 与 更新时间 的自己主动维护(protected $timestamps)public $timestamps = false;/** 定义一对多关系*/public function Scoreinfo(){return $this -> hasMany('Scoreinfo','soc_id');}
}?>

定义与之相应的逆向关系 Model:

<?php
/*** scoreinfo:分数信息表 Model* so_id   :主键自增* s_id    :学生信息表(stuinfo)主键* soc_id  :课程信息表(sobjectinfo)主键* score   :分数*/
class ScoreInfo extends Eloquent {//自己定义表名(protected $table)protected $table = 'scoreinfo';//自己定义主键(protected $primaryKey)protected $primaryKey = 'so_id';//关闭 创建时间 与 更新时间 的自己主动维护(protected $timestamps)public $timestamps = false;/** 分数表(ScoreInfo)与课程表(SobjectInfo)、学生信息表(StuInfo)有主外键关系* 而且是一对多的关系*/public function StuInfo(){return $this -> belongsTo('StuInfo','s_id');}/** 定义逆向关系指向主键表* */public function SobjectInfo(){return $this -> belongsTo('SobjectInfo','soc_id');}
} ?

>

通过以上步骤的处理。表与表之间的一对多关系已确立,

以下将介绍在Laravel Administrato 后台中的实现 下拉列表查询、绑定等应用

<?phpreturn array('title' => '分数信息',        //栏目名'single' => ' >>',            //新建描写叙述'model' => 'ScoreInfo',       //分数信息'form_width' => 960,          //左边栏目宽//列表'columns' => array('so_id' => array('title' => '编号','select' => "so_id",'sort_field'=>'so_id'),'s_name'=>array('title'=>'学生姓名','relationship' => 'StuInfo','select' => '(:table).s_name',),'soc_name'=>array('title'=>'课程名称','relationship' => 'SobjectInfo','select' => '(:table).soc_name',),'score'=>array('title'=>'考试分数','select'=>'score'),),//筛选信息'filters' => array('so_id' => array('title'=>'编号'),'SobjectInfo'=>array('type'    => 'relationship','title'   => '课程名''name_field' => 'soc_name',),'StuInfo'=>array('type'  => 'relationship','title' => '学生姓名','name_field'  => 's_name',),'score'=>array('title'=>'考试分数','type' => 'number'),),//改动、新增'edit_fields' => array('StuInfo'=>array('type'  => 'relationship','title' => '学生姓名','name_field'  => 's_name',),'SobjectInfo'=>array('type'    => 'relationship','title'   => '课程名','name_field' => 'soc_name',),'score'=>array('title'=>'考试分数','type'=>'text'),));?>
以上演示样例展示的是 后台 分数信息 类。

演示样例中多次使用到 “学生姓名”、“课程名”,尽管他们存储在不同的表中,但因为我们之前在 Model中已建立了它们之间的 一对多关系,因此我们能够自由搭配组合

效果图例如以下:



10个Laravel4开发者必用扩展包:
http://blog.csdn.net/yimiyuangguang/article/details/39756115
Laravel Administrator 文档

http://administrator.frozennode.com/docs/field-type-relationship

Laravel4 中文帮助手冊:

http://pan.baidu.com/s/1jGl6cqa

转载于:https://www.cnblogs.com/yxwkf/p/5278068.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进程间通信IPC(二)(共享内存、信号、信号量)

共享内存&#xff1a; 共享内存就是允许两个或多个进程共享一定的存储区。就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候&#xff0c;其它进程都会察觉到这个更改。因为数据不需要在客户机和服务器端之间复制&am…

分布式理论CAP定理

CAP原则又称CAP定理&#xff0c;指的是在一个分布式系统中&#xff0c; Consistency&#xff08;一致性&#xff09;、 Availability&#xff08;可用性&#xff09;、Partition tolerance&#xff08;分区容错性&#xff09;&#xff0c;三者不可兼得。 998年&#xff0c;加州…

xmlWriter 以UTF-8格式写xml问题

dom4j中的XMLWriter提供以下几种构造方法&#xff1a; XMLWriter() XMLWriter(OutputFormat format) XMLWriter(OutputStream out) XMLWriter(OutputStream out, OutputFormat format) XMLWriter(Writer writer) XMLWriter(Writer writer, OutputFormat format) 最简单常…

linux线程(互斥锁、条件)

线程概念&#xff1a; 典型的UNIX/Linux进程可以看成只有一个控制线程&#xff1a;一个进程在同一时刻只做一件事情。有了多个控制线程后&#xff0c;在程序设计时可以把进程设计成在同一时刻做不止一件事&#xff0c;每个线程各自处理独立的任务。 进程是程序执行时的一个实例…

linux网络编程、socket编程

进程间通信&#xff1a; 特点&#xff1a;依赖于内核&#xff0c;造成缺陷——无法实现多机通信。 网络&#xff1a; 地址&#xff1a;由IP地址&#xff08;IP地址是IP协议提供的一种统一的地址格式&#xff0c;它为互联网上的每一个网络和每一台主机分配一个逻辑地址&#xf…

Linux文件和目录权限笔记

查看文件或者目录的权限命令&#xff1a;ls -al # -a 表示全部文件包含隐藏文件&#xff0c;-l 表示列出每个文件的详细信息比如执行 ls -altotal 115drwxr--x--- 4 root root 4096 Oct 24 02:07 install.log格式说明&#xff1a;通过 ls -al 格式化输出的文件详细信息&#x…

python基础:序列(列表、元组、字符串)、函数、字典、集合

Python语言运行环境&#xff1a; windowslinuxunixMacos等等 博客记录内容&#xff1a; Python3的所有语法、面向对象思维、运用模块进行编程、游戏编程、计算机仿真。 Python是什么类型的语言&#xff1a; Python是脚本语言&#xff0c;脚本语言(Scripting language)是电脑…

python基础(文件、异常、模块、类、对象)

文件&#xff1a; 打开文件使用open函数&#xff0c;open()的第一个参数是&#xff1a;要打开文件的路径&#xff0c;如果只传入文件名那么将在当前文件下查找文件并打开。第二个参数是&#xff1a;文件的打开模式&#xff0c;其他参数都是默认的。文件的打开模式如下图所示&a…

redis 和 memcached 的区别

redis 和 memcached 的区别 对于 redis 和 memcached 我总结了下面四点。现在公司一般都是用 redis 来实现缓存&#xff0c;而且 redis 自身也越来越强大了&#xff01; redis支持更丰富的数据类型&#xff08;支持更复杂的应用场景&#xff09;&#xff1a;Redis不仅仅支持简…

树莓派入门(树莓派登录的几种方式)

什么是嵌入式&#xff1f; 嵌入式即嵌入式系统&#xff0c;IEEE&#xff08;美国电气和电子工程师协会&#xff09;对其定义是用于控制、监视或者辅助操作机器和设备的装置&#xff0c;是一种专用的计算机系统。国内普遍认同的嵌入式系统定义是以应用为中心&#xff0c;以计算…

Linux库概念及相关编程(动态库、静态库、环境变量)

分文件编程&#xff1a; 好处&#xff1a;分模块编程思想&#xff0c;功能和责任划分清楚便与调试&#xff0c;main函数简洁&#xff0c;代码易于阅读。编程时头文件有的是使用<>这个符号括起来的&#xff0c;有的是" "使用的是双引号&#xff0c;使用尖括号括…

kali扫描内网ip_Metasploit路由转发实现内网渗透

利用背景在渗透的过程中常常会遇到这种场景&#xff1a;我们已经通过web渗透拿下一台内网服务器&#xff0c;为了进一步进行内网渗透&#xff0c;我们会利用“沦陷主机”作为跳板进行进一步的内网渗透&#xff0c;扩大战果。现在假设的场景是此时我们已经拿下一台内网服务器的远…

.NET Core 3.0 中的新变化

译者&#xff1a;楚人Leo译文&#xff1a;http://www.cnblogs.com/leolion/p/10585834.html原文&#xff1a;https://msdn.microsoft.com/en-us/magazine/mt848631.aspx.NET Core 3.0 是 .NET Core 平台的下一主要版本。本文回顾 .NET Core 发展历史&#xff0c;并展示了它是如…

树莓派GPIO口的使用(外设相关开发WringPi库的使用,超声波、继电器)

树莓派的接口&#xff1a; 大而简单的类别&#xff1a;IO口&#xff0c;input和output是相对于主控芯片来说的&#xff0c;是根据MCU和外设之间的关系将IO口的功能分为output和input。当IO作为input使用时外设有&#xff1a;人体传感器、烟雾传感器、火焰传感器、振动传感器等…

volatile指令重排_有多少人面试栽到Volatile上?面试问题都总结到这儿了

Volatile关键字volatile 是Java虚拟机提供的 轻量级 的同步机制.何为 轻量级 呢&#xff0c;这要相对于 synchronized 来说。Volatile有如下三个特点。要搞清楚上面列举的名词 可见性 原子性 指令重排 的含义我们需要首先弄清楚JMM(Java内存模型是怎么回事)JMM规定了内存主要划…

Dubbo核心概念

节点角色规范 节点角色规格Provider提供者公开远程服务Consumer消费者致电远程服务Registry注册表负责服务发现和配置Monitor监视器计算服务调用的数量和耗时Container容器管理服务的生命周期 服务关系 Container负责启动&#xff0c;加载和运行服务Provider。ProviderRegiste…

良心推荐11款可以称得上“神器”的Windows工具集合

1、最快文件搜索工具 Everything&#xff1a;当之无愧的最强本地文件搜索神器&#xff0c;搜索任何关键词基本是秒速出现&#xff0c;比Windows自带的搜索快了太多&#xff0c;电脑文件比较多的人必备&#xff01; 2、专业软件卸载器 Revo Uninstaller Pro&#xff1a;Windows电…

LD3320语音识别模块二次开发及与树莓派间的通讯

实物图如下&#xff1a; 一般这种模块的资料厂家都会给&#xff0c;需要的话可以私信我发邮箱&#xff0c;下面介绍该模块的各种参数。型号&#xff1a;YS-LDV7名称&#xff1a;一体化语音识别模块规格&#xff1a;43*29.7MM供电电压&#xff1a;5V &#xff08;内部工作电压…

多生产者_你是生产者还是消费者?这决定了你的层次。

不知道你有没有注意到&#xff0c;每天乘坐地铁上下班的时候&#xff0c;大部分人都在刷剧、看视频、打游戏等等&#xff0c;总之都属于玩乐。用生产和消费的关系来看的话&#xff0c;其实这一大部分人都属于消费者&#xff0c;“时间和注意力”是他们用于交换的筹码&#xff1…