zoukankan      html  css  js  c++  java
  • thinkphp 关联

    原理:https://www.kancloud.cn/laowu199/e_dev/448632

    示例数据库

    hasOne:有一个,加上主谓语应该是 ,A 有一个 B
    hasMany:有很多,A 有很多 B

    <?php
    namespace appcommonmodel;
    use thinkfacadeLog;
    use thinkModel;
    class CategoryModel extends App
    {
        protected $table ='category';
        protected $pk = 'id';
        
        public function product(){
            return $this->hasMany("appcommonmodelProductModel",'category_id','id')->order('id'); 
    //注意第二个参数为外键,第三个参数为CategoryModel里面对应外键的域
    }

    调用

    $categorys =  CategoryModel::with(['product'=>function($query){$query->field('id,name,product_code,price1,price2,category_id');}])->all();

    参考

    $list = User::field('id,name')->with(['profile'=>function($query){$query->field('email,phone');}])->select([1,2,3]);
    //如果使用field方法指定查询字段,闭包函数内查询字段必须包含当前关联模型的主键,否则会导致关联查询失败
    foreach($list as $user){
    // 获取用户关联的profile模型数据
    dump($user->profile);
    }


    belongsTo:属于, A 属于 B

    数据表

    model

    <?php
    
    
    namespace appcommonmodel;
    
    
    use thinkModel;
    
    class ProductModel extends Model
    {
        protected $table = 'product';
        protected $pk = 'id';
    
    
    
        public function category(){
            return $this->belongsTo('appcommonmodelCategoryModel','category_id','id');
        }
        public function getProductByCategory($categoryId = 0){
            return $this->where('id',$categoryId)->select();
        }
    
    
    }

    调用

    $productModel = new ProductModel();
            $product = $productModel::find(5); //注意关联查询只能单条数据查询
            $category= $product->category;
    
            dump($product);

    belongsto输出

    hasMany调用 

     $categoryDao = new CategoryModel();
           $category = $categoryDao::get(1);
           $product = $category->product;
  • 相关阅读:
    Java 中的四种权限修饰符
    Java final关键词
    Java 多态
    Java 接口
    Java 抽象类
    iOS下JS与OC互相调用(八)--Cordova详解+实战
    iOS下JS与OC互相调用(七)--Cordova 基础
    计算机网络中的TCP/IP模型
    计算机网络中的七层模型
    Android简易实战教程--第三十一话《自定义土司》
  • 原文地址:https://www.cnblogs.com/jiangfeilong/p/11264806.html
Copyright © 2011-2022 走看看