framework
framework copied to clipboard
hasWhere 和 with 同时使用的 bug
环境:ThinkPHP 5.1.40 数据库:sql server 2008
<?php
/**
* 货品单位.
*/
namespace app\wx\model;
class GoodsUnit extends BaseModel
{
protected $name = 'GoodsUnit';
protected $table = 'l_goodsunit';
protected $pk = 'unitid';
protected $visible = ['goodsid', 'unitid', 'unitname', 'rate', 'price', 'sequence','unittype'];
public function goods()
{
return $this->belongsTo('Goods','goodsid','goodsid');
}
}
<?php
/**
* 货品资料.部分代码
*/
namespace app\wx\model;
use think\Db;
class Goods extends BaseModel
{
protected $name = 'Goods';
protected $table = 'l_goods';
protected $pk = 'goodsid';
protected $visible = ['goodsid', 'code', 'name', 'specs', 'gdtypeid', 'brandid', 'quantity', 'unitid', 'unitname', 'orderaddqty', 'minpurchaseqty','affixinfoid','closed'];
}
复现过程:
有两个表,一个货品资料Goods,一个货品单位GoodsUnit,一个货品对应多个货品单位,在货品单位中定义belongsTo, 货品资料中 设置 visible 属性。
控制器中:
$data=GoodsUnit::hasWhere('goods',[['closed','=',1]])->with(['goods'])->all();
return $data;
返回的结果是:
[
{
"goodsid": "68",
"unitid": "153",
"unittype": "0",
"sequence": "1",
"unitname": "套",
"rate": "1.00000000",
"goods": {
"goodsid": "68",
"code": "1000",
"name": "速达",
"specs": null,
"gdtypeid": "1",
"unitid": "153",
"quantity": ".00000000",
"orderaddqty": "1.00000000",
"minpurchaseqty": "1.00000000",
"closed": "1",
"affixinfoid": null,
"brandid": null,
"def": {
"批准文号": null,
"货品自定义2": null,
"货品自定义3": null,
"货品自定义4": null,
"货品自定义5": null,
"货品自定义6": null,
"货品自定义7": null,
"货品自定义8": null,
"货品自定义9": null,
"货品自定义10": null
}
}
},
{
"goodsid": "68",
"unitid": "154",
"unittype": "1",
"sequence": "0",
"unitname": null,
"rate": ".00000000",
"goods": {
"goodsid": "68",
"code": "1000",
"name": "速达",
"enname": null,
"shortname": null,
"specs": null,
"enspecs": null,
"gdtypeid": "1",
"unitid": "153",
"gcmid": "1",
"storeid": null,
"placeid": null,
"barcode": null,
"weightcode": null,
"kind": "1",
"aprice": ".00000000",
"quantity": ".00000000",
"realqty": ".00000000",
"extqty": ".00000000",
"realextqty": ".00000000",
"costtype": "3",
"validdates": null,
"highprice": ".00000000",
"lowprice": ".00000000",
"pprice": ".00000000",
"sprice": ".00000000",
"vipprice": ".00000000",
"lprice1": ".00000000",
"lprice2": ".00000000",
"lprice3": ".00000000",
"lprice4": ".00000000",
"lprice5": ".00000000",
"cancmb": "0",
"guserdef1": null,
"guserdef2": null,
"guserdef3": null,
"guserdef4": null,
"guserdef5": null,
"guserdef6": null,
"guserdef7": null,
"guserdef8": null,
"guserdef9": null,
"guserdef10": null,
"posyear": "2014",
"posmonth": "1",
"status": "0",
"orderaddqty": "1.00000000",
"ismrp": "1",
"leadtime": "1",
"traderid": null,
"minpurchaseqty": "1.00000000",
"counterid": null,
"speedsymbol": null,
"closed": "1",
"upflag": "0",
"comminfoid": "191",
"affixinfoid": null,
"isbatch": "0",
"workshopid": null,
"empid": null,
"hsid": null,
"hsrate": null,
"countryid": null,
"goodswardid": null,
"pointrate": "1.00000000",
"changepoint": ".00000000",
"IsVipPrice": "1",
"ismobile": "0",
"dsgoods": "0",
"dscorpid": null,
"dsgoodscode": null,
"brandid": null,
"storelist": null,
"rate": null,
"ROW_NUMBER": "1",
"def": {
"批准文号": null,
"货品自定义2": null,
"货品自定义3": null,
"货品自定义4": null,
"货品自定义5": null,
"货品自定义6": null,
"货品自定义7": null,
"货品自定义8": null,
"货品自定义9": null,
"货品自定义10": null
}
}
}
]
第一个GoodsUit中, Goods 是按visible 属性显示的,第二个 GoodsUnit 中,Goods 显示的是所有的字段,没有处理 visible 属性。