Thinkphp5 关联模型
必须建立两个模型分类模型(attr)、文章模型(article)
attr模型
<?php
namespace app\common\model;
use think\Model; class Attr extends Model{ }
article模型
<?php
namespace app\common\model;
use think\Model; class Article extends Model{ }
hasOne(一对一关联)
关联查询
<?php
namespace app\common\model;
use think\Model; class Attr extends Model{
// 关联文章模型
public function article()
{
//return $this->hasOne('article','pid','id','','INNER');
return $this->hasOne('article','pid');
} public function s(){
$id = 19;
$attr = $this->get($id);
// 查询单条
//$res = $attr->article()->find();
// 查询多条
$r = $attr->article; // 打印出来数据(article+attr内容)
$rr = $attr->article->parent->data; // 打印attr内容
$rrr = $attr->article->data; // 打印出来article内容; $r = $this->toCollection($rrr);
return $r; } }
查询出来的是article内容(只有一条数据)。比如:一个用户,只有一份身份信息
关联保存
hasMany(一对多关联)
<?php
namespace app\common\model;
use think\Model; class Attr extends Model{
// 关联文章模型
public function article()
{
return $this->hasMany('article','pid','id');
//return $this->hasOne('article','pid');
}
// 可用
public function s(){
$id = 9;
$attr = $this->get($id);
// 查询单条
//$res = $attr->article()->find();
// 查询多条
$res = $attr->article()->select();
return $res; } }
控制器调用
<?php
namespace app\index\controller;
use think\Controller;
use think\Model;
class Index extends Controller
{
protected $model;
public function _initialize()
{
parent::_initialize(); // TODO: Change the autogenerated stub
$this->model = model('attr');
} public function index(){
$d = $this->model->s();
print_r($d);
} }
输出结果:只有article 内容(没有attr内容)。hasMany关联相当于Model('article')。一个用户可以看多本数
Thinkphp5 关联模型的更多相关文章
- thinkphp5 model 模型
新增更新都是save.saveAll 怎么识别他们 实例化模型后调用save方法表示新增: 查询数据后调用save方法表示更新: save方法传入更新条件后表示更新: isUpdate(true): ...
- ThinkPHP5中模型关联关系一对一,一对多
TP5 返回json反斜杠前面转义了class XinDai extends Controller{ public function index(){ $res = [ ['logo'=>'/i ...
- Thinkphp5.0 模型hasOne、hasMany、belongsTo详解
ThinkPHP5有关联模型的操作,但有部分初学者对数据表中常见的几种表与表的关系还存在着问题,所以使用不好关联查询. 这里将hasOne.hasMany.belongsTo进行一个详细举例说明. 首 ...
- ThinkPHP 3.2.3 关联模型的使用
关于关联模型 ThinkPHP 3.2.3 的关联模型(手册地址)一般处理关联数据表的 CURD 操作,例如关联读取.关联写入.关联删除等. 实例 博客管理模块关于博客有 4 张数据表:博客表 crm ...
- thinkphp 关联模型配置代码
<?php /** * 公司与部门关联模型 */ class CompanyRelationModel extends RelationModel{ //主表名称 protected $tabl ...
- ThinkPHP 学习笔记 ( 四 ) 数据库操作之关联模型 ( RelationMondel ) 和高级模型 ( AdvModel )
一.关联模型 ( RelationMondel ) 1.数据查询 ① HAS_ONE 查询 创建两张数据表评论表和文章表: tpk_comment , tpk_article .评论和文章的对应关系为 ...
- ThinkPHP 关联模型中查询某条记录的父级(非查询子级)
数据表 id cat_name cat_pid 76 手机.数码 0 84 手机配件 76 86 蓝牙耳机 84 从属关 ...
- ThinkPHP第十五天(setField、setInc、setDec、关联模型)
1.ThinkPHP中的比较特殊连贯操作 如果要更新某个字段可以用setField方法,比如M('user')->where('id=1')->setField('username','T ...
- ThinkPHP第十四天(显示TRACE界面配置,关联模型详解定义)
1.显示TRACE界面,首选需要在显示模版界面,$this->display(),然后需要在配置文件中配置 SHOW_PAGE_TRACE => true 2.关联模型使用 主表以user ...
随机推荐
- 潭州课堂25班:Ph201805201 第十六课 正则 (课堂笔记)
import re 元字符: . ^ $ * + ? {} \ () # s = 'abcdefg' # s.find('c') # print(s.find('cd')) ## 查找 # b = s ...
- [POI2010]GRA-The Minima Game
OJ题号:洛谷3507 思路: 如果选了$k_i$,那么你的对手就可以选上所有$\geq{k_i}$的数.那么他其中获得的分数也一定$\geq{k_i}$. 如果你选了$k_i$以及所有$\geq{k ...
- git恢复某个已修改的文件--备忘
checkout 恢复某个已修改的文件(撤销未提交的修改): $ Git checkout file-name revert 还原已提交的修改(已经提交过的修改,可以反悔-) 还原最近一次提交的修改: ...
- js实现文字超出部分用省略号代替实例代码
关于超出一定字数用省略号显示的问题,这种要求在我们日常开发的时候经常见到,我们之前基本都是用CSS来完成的,今天给大家分享个Javascript实现这个功能的示例代码,有需要的可以参考借鉴. 话不多说 ...
- U3D面试题四
1.配置Unity3D调试环境 在windows环境下,设置unity3d的编辑器调试环境方法: 点击“Edit‘---”Preferences“,弹出如下窗口 选择MonoDeveop即可. 在编辑 ...
- 未能加载文件或程序集“Benlai.SOA.Framework.Common, Version=1.4.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。
未能加载文件或程序集“Benlai.SOA.Framework.Common, Version=1.4.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个 ...
- 机器学习笔记(6):多类逻辑回归-使用gluon
上一篇演示了纯手动添加隐藏层,这次使用gluon让代码更精减,代码来自:https://zh.gluon.ai/chapter_supervised-learning/mlp-gluon.html f ...
- [Android Pro] Android P版本 新功能介绍和兼容性处理(三)Android Studio 3.0 ~ 3.2 其他特性
cp : https://blog.csdn.net/yi_master/article/details/80067198 1:JAVA8特性支持 1)Base64.java 在升级到as3.0之后, ...
- CentOS7 下 keepalived 的安装和配置
安装前准备:yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib zlib-devel openssl opens ...
- Gradle Build Tool
转自知乎: nonesuccess 通俗的说:gradle是打包用的. 你觉得解决你的问题了吗?如果没解决,那是你的问题提得不够好.比如我猜你应该提:为什么要打包发布,打包发布有几种常见方法,为什么这 ...