ThinkPHP - 关联模型

使用之前,先引入文件夹,否则相应的功能不能实现。

如果对thinkPHP不精通,使用或开发的时候,最好直接使用完成版本的ThinkPHP。

关系模型定义:

<?php
/**
 * 继承自 RelationModel ,一定要在扩展中加入Model文件
 * ThinkPHP\Extend\Model\RelationModel.class.php
 */
class MessageModel extends RelationModel{
    //映射关系
    protected $_link = array(
        //一个用户可以有多条留言,一条留言只属于一个用户
        ‘User‘ => array(
            //关联类型
            ‘mapping_type‘ => BELONGS_TO,
            //对应外键
            ‘foreign_key‘ => ‘uid‘,
            //映射名称
            ‘mapping_name‘=>‘user‘,
            //映射字段,不写此属性,默认为所有字段
            ‘mapping_fields‘=>‘username‘,
            //是否直接写入到查询的结果中,不以二维数组显示。
            ‘as_fields‘=>‘username‘,
        ),
    );
}

使用规则:

public function left(){
    $msg = D(‘Message‘);
    $res = $msg->relation(true)->select();
    $this->assign(‘data‘, $res);
    $this->display();
}
时间: 2024-10-12 21:16:49

ThinkPHP - 关联模型的相关文章

thinkphp关联模型的用法

HAS_ONE(值得注意的是,这是主动关联,外键必须是被关联的表): 1 <?php 2 namespace Home\Model; 3 use Think\Model\RelationModel; 4 class TagModel extends RelationModel{ 5 protected $_link =array( 6 'artag'=>array(//关联的数据表 7 'mapping_type'=>self::HAS_ONE,//一对一 8 'class_name'

ThinkPHP 关联模型(二十)

原文:ThinkPHP 关联模型(二十) ThinkPHP关联模型 两表关联查询:Message 和  user  关联条件uid(参考手册:模型->关联模型) 步骤: 一:创建Message表自定义的Mode  --->Home\Lib\Model\MessageModel.class.php <?php class MessageModel extends RelationModel{ //这是自动填充 protected $_auto=array( array('time','ti

【ThinkPHP】关于ThinkPHP关联模型和视图模型的一些心得

视图模型更加类似一张表虚拟的表,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成.对其中所引用的基础表来说,视图的作用类似于筛选,这是ThinkPHP手册上的说法 其实说白了,视图模型就是mysql多表查询而已,视图模型不支持多表更新,删除 而关联模型是多个表查询以后的结果组合,会多次查询mysql,(在执行完主表查询以后,会有个_after_select)之类的操作,然后组合结果集.在一些情

thinkphp 关联模型配置代码

<?php /** * 公司与部门关联模型 */ class CompanyRelationModel extends RelationModel{ //主表名称 protected $tableName = 'company'; //定义关联关系 protected $_link = array( //关联表名称 'department' => array( 'mapping_type' => MANY_TO_MANY, //多对多关系 'foreign_key' => 'com

ThinkPHP 关联模型中查询某条记录的父级(非查询子级)

数据表 id      cat_name      cat_pid 76     手机.数码     0 84     手机配件        76 86     蓝牙耳机        84 从属关系 : 蓝牙耳机  =>(上一级)  手机配件   =>(上一级)  手机.数码(顶级了) 关联模型 namespace Admin\Model; use Think\Model\RelationModel; class CategoryModel extends RelationModel {

thinkphp关联模型的注意大小写

TP框架报错: think\Model:relation方法不存在 首先检查大小写,尤其是模型名称首字母大写 /**** 模型名字QqModel.class.php ******************************************************/ namespace Home\Model; use Think\Model\RelationModel; //命名空间不要写错 class QqModel extends RelationModel{ //继承自关系模型

thinkphp 关联模型 注意点

这里以商品与商品类别为例 1.表名为goods_type  则模型名为GoodsTypeModel,若模型名不是这,得另外定义   protected $tableName=模型对应主表名 2.模型类必须继承RelationModel 3.三种关联关系 一对一关联 :ONE_TO_ONE,包括HAS_ONE和BELONGS_TO一对多关联 :ONE_TO_MANY,包括HAS_MANY和BELONGS_TO多对多关联 :MANY_TO_MANY ,这个要专门定义一个表来表示两个表间多对多关系 (

ThinkPHP 3.2.3 关联模型的使用

关于关联模型 ThinkPHP 3.2.3 的关联模型(手册地址)一般处理关联数据表的 CURD 操作,例如关联读取.关联写入.关联删除等. 实例 博客管理模块关于博客有 4 张数据表:博客表 crm_blog: CREATE TABLE `crm_blog` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(30) NOT NULL DEFAULT '', `content` text NOT NULL, `tim

thinkphp 多对多关联模型(转)

先建立一个模型 1 2 3 4 5 6 7 8 9 10 11 12 <?php  class UserModel extends RelationModel{      protected $_link=array(        "group"=>array(            "mapping_type"=>MANY_TO_MANY,            "foreign_key"=>"uid&quo