zoukankan      html  css  js  c++  java
  • ThinkPHP第十五天(setField、setInc、setDec、关联模型)

    1、ThinkPHP中的比较特殊连贯操作

      如果要更新某个字段可以用setField方法,比如M('user')->where('id=1')->setField('username','ThinkPHP');这样子就只更新了username字段

      如果要对某个字段增加或者减少某个数值,可以用 setInc(字段名,增加数值默认为1),setDec(字段名,减少数值默认为1);M('user')->where('id=1')->setInc('level',5);

    2、不用where删除数据

      $User->delete('1,2,5'); // 删除主键为1,2和5的用户数据。

    3、关联模型一个简单实例:

    Class BlogRelationModel extends RelationModel{
        protected $tableName = 'blog';//由于模型名称不是默认表名,此处需定义$tableName指定表名
        protected $_link = array(//此处定义关联模型
            'cate'=>array(    //关联1 与category表进行关联
                'mapping_type'=>BELONGS_TO,//指定关联方式
                'mapping_name'=>'category',//关联映射名称 在控制器读取时显示的数组键名 也是relation('category')引用的名称
                'class_name'=>'Category',//关联的模型名称,即关联表名称。
                'foreign_key'=>'cid',//外键名称
                'mapping_fields'=>'name',//读取字段列表
                'as_fields'=>'name:categoryname',//设定这个参数后,在读取时候不是显示cagegory数组了,而是一个categoryname项
            ),     
            'attr'=>array(
                'mapping_type'=>MANY_TO_MANY,//关联方式
                'class_name'=>'Attribute',//关联模型类即表名
                'mapping_name'=>'attribute',//控制器端显示名称
                'foreign_key'=>'bid',//在中间表中的主表外键
                'relation_foreign_key'=>'aid',//在中间表中的从表外键
                'relation_table'=>'blog_attribute',//名称中间表
                'mapping_order'=>'aid desc'//中间表数据排序方式  
            ),
        );   
    }

    在控制器端调用关联模型类如下:

    $blog = D('BlogRelation')->where('del = 0')->field('del',true)->relation(true)->select();
  • 相关阅读:
    Sqoop详细知识
    数据分析与数据挖掘
    数仓 星形模型与雪花模型 简单理解
    mapreduce多进程与spark多线程比较
    ETL工具总结
    数据仓库概述
    利用 Azure Devops 创建和发布 Nuget 包
    设置 Nuget 本地源、在线私有源、自动构建打包
    简单理解 OAuth 2.0 及资料收集,IdentityServer4 部分源码解析
    asp.net core 健康检查
  • 原文地址:https://www.cnblogs.com/huilange/p/3391398.html
Copyright © 2011-2022 走看看