thinkphp-关联模型下

    一对多:HAS_MANY

  控制器

<?php
  namespace Home\Controller;
  use Think\Controller;

  class GlmoxController extends Controller {
    public function index(){
      $user=D(‘con‘);
      $arr=$user->relation(true)->select();
      echo ‘<pre>‘;
      print_r($arr);
      echo ‘</pre>‘;

    }

  }

?>

  模型

<?php
  namespace Home\Model;
  use Thimk\Model;
  use Think\Model\RelationModel;

  class GlmxingModel extends RelationModel{
    protected $_link = array(
      ‘con‘ => array(

                      
        ‘mapping_type‘ => self::HAS_MANY, //设置关联模式,如一对多
        ‘foreign_key‘ => ‘uid‘, //关联的外键名称,自动对应id
        ‘class_name‘ => ‘Sfz‘, //要关联的模型类名,没写默认上面的

        ‘mapping_name‘=>‘contents‘,    //修改映射的字段名
        ‘mapping_fields‘=>‘con‘,           //只显示con字段
        ‘mapping_limit‘=>‘0,2‘,         //只显示两个
        ‘mapping_order‘=>‘id DESC‘,     //以id倒数显示

      ),
    );
  }

?>

    多对多:

  用户表与角色表的关联,中间表

‘User‘ => array(
  ‘mapping_type‘ => self::BELONGS_TO, //设置关联模式,如一对一
  ‘relation_table‘=>‘think_group‘,    //中间表的全表名
  ‘foreign_key‘ => ‘uid‘,               //关联的外键名称,自动对应id
  ‘relation_foreign_key‘=>‘gid‘,     //关联的字段

),

时间: 2024-12-29 11:18:41

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 - 关联模型

使用之前,先引入文件夹,否则相应的功能不能实现. 如果对thinkPHP不精通,使用或开发的时候,最好直接使用完成版本的ThinkPHP. 关系模型定义: <?php /** * 继承自 RelationModel ,一定要在扩展中加入Model文件 * ThinkPHP\Extend\Model\RelationModel.class.php */ class MessageModel extends RelationModel{ //映射关系 protected $_link = array

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