博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于YII中的hasMany 和 hasOne的用法
阅读量:7304 次
发布时间:2019-06-30

本文共 1215 字,大约阅读时间需要 4 分钟。

hot3.png

hasMany  ------------------------- (一对多关系)比如 一个人有多个订单 

hasOne --------------------------(一对一关系)比如一个订单只能能一个人购买

下面是代码

创建连个表 

CREATE TABLE `customer` (

  `id` int(10) NOT NULL AUTO_INCREMENT,
  `customer_name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

CREATE TABLE `order` (

  `id` int(10) NOT NULL AUTO_INCREMENT,
  `order_name` varchar(255) DEFAULT NULL,
  `customer_id` int(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

配置两个模型

Order.php

class  Order  extends  \yii\db\ActiveRecord{

       public function getCustomer(){
        return $this->hasOne(Customer::className(), ['id' => 'customer_id']);
     }

}

Customer.php

namespace app\models;

use app\models\Order;
use Yii;
class  Customer extends  \yii\db\ActiveRecord{
   public  function  getOrders(){
      return $this->hasMany(Order::className(), ['customer_id' => 'id']);
    }
}

控制器的代码

HasController.php

 public  function  actionIndex(){

        //一对多查询
        $id = 1;
        $customer = Customer::findOne($id);
        $list = $customer->getOrders()->asArray()->all();
        //一对一查询
        $order = Order::findOne(['id'=>1]);
        $customer =  $order->getCustomer()->asArray()->one();
        print_r($customer);
     }

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/hongjiang/blog/3054571

你可能感兴趣的文章
vmware提示:此虚拟机似乎正在使用中,无法取得所有权的解决办法
查看>>
poj 3009
查看>>
Linux_ServicesManagement_RHEL7
查看>>
Qt动态多语言的实现(VS2012开发)
查看>>
使用Axure制作无限循环展示图片效果
查看>>
java socket/Serversocket编程详解(中/英文)
查看>>
java web 读取配置文件两种方法
查看>>
hdu 1087 Super Jumping! Jumping! Jumping!
查看>>
HDU 4288 Coder [线段树]
查看>>
Message Flood
查看>>
html_javascript
查看>>
【贪心】Codeforces Round #436 (Div. 2) D. Make a Permutation!
查看>>
Ubuntu共享WiFi(AP)给Android方法
查看>>
基本通信模型
查看>>
【STSRM13】绵津见
查看>>
servlet
查看>>
TOJ 4095: love168yk的选美大赛
查看>>
jQuery和AngularJS的区别小分析
查看>>
HTML5本地存储——Web SQL Database
查看>>
MyEclipse和tomcat结合编写jsp对于中文乱码的解决方法
查看>>