think php5关联模型,thinkphp5的模型中使用关联
有以下两个表
artitcle表(表示文章)
article的主键是id,外键是cateid,cateid对应于cate表的主键id。
cate表(表示栏目)
cate表的主键是id。
这两张表表示,每一篇文章属于一个栏目,每一个栏目有很多篇文章。
然后编写model类
article的model类:
class Article extends Model
{
// 设置完整数据表(包含前缀名),不含前缀用$name
// 这里用了LoginModel类名,而不是Login名,如果和控制器名一样,并且和数据库名一样即可不用指定数据库表名
protected $name='article';
public function cate()
{
return $this->belongsTo("cate", "cateid", "id", ['article'=>'a', 'cate'=>'c'], 'LEFT');
}
}
cate的model类:
class Cate extends Model
{
// 设置完整数据表(包含前缀名),不含前缀用$name
// 这里用了LoginModel类名,而不是Login名,如果和控制器名一样,并且和数据库名一样即可不用指定数据库表名
protected $name='cate';
public function article()
{
//hasMany('关联模型名','外键名','主键名',['模型别名定义']);
//hasMany('关联模型名','cate的外键名','cate的主键名',['模型别名定义']);
//cate的主键是id,article的外键是cateid,关联cate的id主键,article的外键是cateid
return $this->hasMany("article", "id", "id");
}
}
article的控制器类对model进行调用
class Article extends BaseControler
{
public function lst()
{
$artres = ArticleModel::with("cate")->paginate(3);
$this->assign('artres', $artres);
return $this->fetch();
}
}
最后在article的模板中调用变量(注意:由于model返回来的是对象数组,不是数据的二维数组,所以在html中调用是->而不是. 。
{$vo->id}{$vo->title}
{if condition="$vo->pic neq '' "}
{else /}
无缩略图
{/if}
{$vo->click}{$vo->time|date="Y-m-d",###}{$vo->cate->catename}
注意上面对cate表中catename的调用方式,如果写成{$vo.cate.catename}则会出错。
think php5关联模型,thinkphp5的模型中使用关联相关推荐
- think php5关联模型,thinkphp5中关联模型的定义与使用方法
定义一对一关联 这里假设你已经把thinkphp5的环境都配置好了,数据库也连接OK了.想通过模型把两张表关联起来然后在通过控制器一调用就可以得到两张表的信息. 现在我准备了两张表,一张管理员表pwn ...
- php一对一模型关联,通过实例学习Laravel模型中的一对一关联关系
通过实例学习Laravel模型中的一对一关联关系 一.前言 Laravel遵循[约定优于配置]的原则.PHP开发者只需要遵循Laravel框架的原则,就能减少大量的工作,这便是Laravel的魅力之一 ...
- bert模型简介、transformers中bert模型源码阅读、分类任务实战和难点总结
bert模型简介.transformers中bert模型源码阅读.分类任务实战和难点总结:https://blog.csdn.net/HUSTHY/article/details/105882989 ...
- vue-router 路由嵌套显示不出来_网络协议|OSI模型第三层网络层中的路由
的IP协议 OSI第二层中用以太网协议定义了信息传输单元,简称为帧,它长这个样子. 同样的在OSI第三层中,会用 IP 协议去定义信息传输单元,简称为数据包,它长这个样子. 实际上,最终在网络上传输的 ...
- FM模型及其在推荐系统中的应用
推荐模型或者推荐场景下的排序模型,您脑子里第一个念头冒出的模型是哪个或哪几个? 如果你第一念头冒出来的仍然是SVD/矩阵分解啥的,那么明显你还停留在啃书本的阶段,实践经验不足:如果你第一念头是LR模型 ...
- sequelize模型关联_Node.js Sequelize 模型(表)之间的关联及关系模型的操作
Sequelize模型之间存在关联关系,这些关系代表了数据库中对应表之间的主/外键关系.基于模型关系可以实现关联表之间的连接查询.更新.删除等操作.本文将通过一个示例,介绍模型的定义,创建模型关联关系 ...
- python 组合优化 回撤最小_【揭秘专业投资者的武器】经典组合优化模型 在行业资产配置中的应用示例...
组合优化的目的在于给予高收益,低风险的标的更多的权重,来提高组合整体表现.策略里面大部分情况下都会默认平均持仓的方法,由于没有考虑各个标的风险的不同,标的之间的相关性,并未较好的解决鸡蛋在一个篮子里的 ...
- 字符设备驱动、平台设备驱动、设备驱动模型、sysfs的比较和关联
参考原文:https://www.kancloud.cn/yueqian_scut/emlinux/106829 对原文笔误地方做了修改.重新排版 目录 字符设备驱动.平台设备驱动.设备驱动模型.sy ...
- 机器学习中的模型评价、模型选择及算法选择
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 正确使用模型评估.模型选择和算法选择技术无论是对机器学习学术研究还是工业场景应用都至关重要.本文将对这三个任务的相关技术 ...
最新文章
- Bundle数据传输
- 201671010423 词频统计软件项目报告
- 一步步编写操作系统 19 改进MBR,直接操作显卡
- 【小夕精选】如何优雅而时髦的解决不均衡分类问题
- 性能提升一倍,云原生网关支持 TLS 硬件加速
- python拼图游戏代码,OpenCV Python实现拼图小游戏
- hibernateTemplate 的find 查找方法
- 位运算求两个数的平均值
- Activity过渡动画
- “21天好习惯“第一期-1
- quot在c语言里用法,C语言中“#”和quot;##quot;的用法
- svn 管理 mysql_svn web页面管理svnadmin部署
- python为什么被称为胶水语言_为什么说python是胶水语言
- VLAN-TAG 知识相关
- AT32F407/437 PTP Daemon使用demo
- github php right way,GitHub - seraph526/php-the-right-way: 收集PHP最佳实践、编码规范和权威学习指南,方便PHP开发者阅读和查找...
- DSPE-PEG-TH(AGYLLGHINLHHLAHL(Aib)HHIL) 磷脂(二硬脂酰基磷脂酰乙醇胺)-聚乙二醇-TH(AGYLLGHINLHHLAHL(Aib)HHIL)
- Facebook、Twitter、LinkedIn分享按钮总结
- 【友盟+】国庆假期旅游类APP使用报告(下)
- rjs peepcode 笔记