ThinkPHP - 关联模型 - 多对多
表结构:
映射关系:
UserRelationModel会取UserRelation为表名称。所以要自定义表名称:
//定义主表名称
protected $tableName = 'User';
<?php
Class UserRelationModel extends RelationModel {
//定义主表名称
protected $tableName = 'User'; //定义关联模型
protected $_link = array(
'Role' => array(
'mapping_type' => MANY_TO_MANY, //多对多关系
'foreign_key' => 'user_id', //role对应的外键关系
'relation_foreign_key' => 'role_id', //user表对应的外键关系
'relation_table' => 'ms_role_user', //要关联的表
'mapping_fields' => 'id, name, remark' //关联哪些字段
)
);
}
查询的结果:
Array
(
[0] => Array
(
[id] => 1
[username] => admin
[logintime] => 1455336937
[loginip] => 127.0.0.1
[lock] => 0
[Role] => Array
(
) ) [1] => Array
(
[id] => 2
[username] => thinkbaitang
[logintime] => 1455339999
[loginip] => 127.0.0.1
[lock] => 0
[Role] => Array
(
[0] => Array
(
[id] => 1
[name] => Manager
[remark] => 普通管理员
) [1] => Array
(
[id] => 2
[name] => Admin
[remark] => 高级管理员
) ) ) [2] => Array
(
[id] => 3
[username] => zhangsna
[logintime] => 1455340000
[loginip] => 127.0.0.1
[lock] => 0
[Role] => Array
(
[0] => Array
(
[id] => 1
[name] => Manager
[remark] => 普通管理员
) [1] => Array
(
[id] => 2
[name] => Admin
[remark] => 高级管理员
) [2] => Array
(
[id] => 3
[name] => SuperAdmin
[remark] => 超级管理员
) ) ) )
ThinkPHP - 关联模型 - 多对多的更多相关文章
- ThinkPHP 关联模型(二十)
原文:ThinkPHP 关联模型(二十) ThinkPHP关联模型 两表关联查询:Message 和 user 关联条件uid(参考手册:模型->关联模型) 步骤: 一:创建Message表 ...
- ThinkPHP关联模型详解
在ThinkPHP中,关联模型更类似一种mysql中的外键约束,但是外键约束更加安全,缺点却是在写sql语句的时候不方便,ThinkPHP很好得解决了这个问题.但是很多人不动关联模型的意思.现在就写个 ...
- ThinkPHP关联模型如何关联非主键
ThinkPHP关联模型默认是主键外键关联 官方并没有提供相关文档 如何实现非主键与非主键间之间的关联 <?php namespace Admin\Model; use Think\Model\ ...
- thinkphp 关联模型配置代码
<?php /** * 公司与部门关联模型 */ class CompanyRelationModel extends RelationModel{ //主表名称 protected $tabl ...
- Thinkphp 关联模型和试图模型区别
关联模型主要在多表操作时使用,比如 user表,user_role表,role表 user_role字段:uid,rid,它作为中间表,负责将user和role之间的,1对1,1对多,多对多的关系进行 ...
- ThinkPHP 关联模型中查询某条记录的父级(非查询子级)
数据表 id cat_name cat_pid 76 手机.数码 0 84 手机配件 76 86 蓝牙耳机 84 从属关 ...
- Thinkphp 关联模型
1.定义关联模型 2.使用关联模型 D('BlogRelation')->relation(true)->add($data);
- Thinkphp关联模型使用
1.需求描述 首页文章列表,需要同时获取文章的点赞和被关注数,同时如果被当前用户点赞或关注了会显示相应小图标进行区别.图示如下: 2.解决方案 数据库设计: 文章对应Article表,其中包括收藏数字 ...
- ThinkPHP - 关联模型 - 一对多
使用之前,先引入文件夹,否则相应的功能不能实现. 如果对thinkPHP不精通,使用或开发的时候,最好直接使用完成版本的ThinkPHP. 关系模型定义: <?php /** * 继承自 Rel ...
随机推荐
- Insert into a Cyclic Sorted List
Given a node from a cyclic linked list which has been sorted, write a function to insert a value int ...
- .net 和java JSON 模板
1..net 中JSON对象格式模板 // JSON键值对格式:'key':'value' public static string FORMAT_KEYVALUE = "\" ...
- [LeetCode]题解(python):072-Edit Distance
题目来源: https://leetcode.com/problems/edit-distance/ 题意分析: word1最少通过多少步可以变成word2.word1只能进行一下的操作.a)插入一个 ...
- eclipse设置web项目发布到tomcat根目录下
如果已经将项目绑定到服务器了,那就先删除服务器. 重新添加项目进服务器,双击 修改下面Server Locations到tomcat目录下 顺带可以修改下右上角的超时设置 再点击下方 这样就可以了.
- android application 的使用
参考http://oyeal.iteye.com/blog/941183 由于intent能够传送的对象类型非常有限 因此有些很多类都要用到的变量我们放在Application中 很像web中的s ...
- (C#)Windows Shell 编程系列2 - 解释,从“桌面”开始展开
原文 (C#)Windows Shell 编程系列2 - 解释,从“桌面”开始展开 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一篇:(C#)Windows Shell 编 ...
- perl 第十四章 Perl5的包和模块
第十四章 Perl5的包和模块 by flamephoenix 一.require函数 1.require函数和子程序库 2.用require指定Perl版本二.包 1.包的定义 2.在包间切 ...
- python利用utf-8编码判断中文英文字符(转)
下面这个小工具包含了判断unicode是否是汉字.数字.英文或者其他字符,全角符号转半角符号,unicode字符串归一化等工作. #!/usr/bin/env python # -*- coding: ...
- readv和writev函数
readv 和 writev 函数用于在一次函数调用中读.写多个非连续缓冲区.有时也将这两个函数称为散布读和聚集写. #include <sys/uio.h> ssize_t readv( ...
- jQ 操作积累
1.判断radio是否选中:方式一:var val=$('input:radio[name="sex"]:checked').val(); //(val==null 未选中) 方式 ...