with的好处是减少sql查询;特别是查多条关联数据的时候;
ec_inventory_pkg
数据表名称:库存入库单
关系
public function getBrand() { return $this->hasOne(Brand::className(), ['brand_id' => 'brand_id']); } public function getStore() { return $this->hasOne(Store::className(), ['store_id' => 'store_id']); }
$query = InventPkg::find()->with('brand') ->with('store') ->where($where);
sql:
SELECT * FROM `ec_inventory_pkg` LIMIT 20;
SELECT * FROM `ec_brand` WHERE `brand_id` IN (1, 2);
SELECT * FROM `ec_store` WHERE `store_id` IN (7, 8, 10, 11);
代码:
if (!empty($InventPkg_list)) { foreach ($InventPkg_list as $key => $value) { $return[$key]['package_id'] = $value->package_id; $return[$key]['package_sn'] = $value->package_sn; $return[$key]['verson_no'] = $value->verson_no; $return[$key]['brand_id'] = $value->brand_id; $return[$key]['brand_name'] = $value['brand']['brand_name']; $return[$key]['store_id '] = $value->store_id; $return[$key]['store_name'] = $value['store']['store_name']; $return[$key]['created_by'] = $value->created_by; $return[$key]['modified_by'] = $value->modified_by; $return[$key]['created_time'] = $value->created_time; $return[$key]['modified_time'] = $value->modified_time; $return[$key]['status'] = $value->status; } }