zoukankan      html  css  js  c++  java
  • thinkphp5.1 模型关联查询输出 整了很久才明白,做个笔记

    1.首先上表和模型

    1.user 用户表
    {
      user_id  //主键
    }
    2.account 账务表
    {
      account_id  //主键
      user_id  //用户外键
    }

    3.User模型
    class
    User extends Model { protected $table = 'yh_user'; protected $pk = 'user_id'; } 4.Account模型 class Account extends Model { protected $table = 'yh_account'; protected $pk = 'account_id'; }

    一、如果需要通过User模型获取到Account模型的数据 第一步先User模型中创建一对多的关联方法 注意是:hasMany()方法
    
    
    class User extends Model
    {
    protected $table = 'yh_user';
    protected $pk = 'user_id';

     //关键操作
    public function account()
    {
    return $this->hasMany('Account','user_id');
    }
     }

    控制器操作
    $data = UserModel::with('account')->select();
    输出结果:
    [2] => array(3) {
        ["user_id"] => int(67)
        ["account"] => array(1) {
          [0] => array(2) {
            ["account_id"] => int(1)
            ["user_id"] => int(67)
          }
        }


    一、如果需要通过Account模型关联获取到User模型的数据 第一步先Account模型中创建反关联方法 注意是:belongsTo()方法

    class Account extends Model
    {
    protected $table = 'yh_account';
    protected $pk = 'account_id';

    //关键操作
    public function User()
    {
    return $this->belongsTo('User','user_id');
    }
    }

    控制器操作:
    $data = AccountModel::with('User')->select();
    dump($data);

    输出结果:
    array(1) {
      [0] => array(8) {
        ["account_id"] => int(1)
        ["user_id"] => int(67)
        ["user"] => array(11) {
          ["user_id"] => int(67)
        }
      }
    }
  • 相关阅读:
    12306.cn网站自动登录器源代码
    从IL看C#
    CanvasRenderingContext2Dhtml5的关键
    慎用Response.Write()
    JPanel 的getGraphics
    怎么用swing绘图
    Win7 双硬盘启动出错处理
    paint repaint实现动画
    多线程一例
    画图,橡皮
  • 原文地址:https://www.cnblogs.com/tiaoma888/p/thinkphp.html
Copyright © 2011-2022 走看看