多对一绑定模型属性

浏览:1071 发布日期:2020/04/29
5.0.0 - 普通 - 已处理
TP6.0.2的bugUser用户表
id, name, sex, city_id

City城市表
id, name
用户属于一个城市class User extends Model {
    public function city() {
        return $this->belongsTo('City')->bind(['city_name'=>'name']);
    }
}
原来TP5.0
如果city存在就是 city_name=北京,不存在就是city_name=null,字段名都是bind()里指定的city_name。User::where(['id'=>1])->with(['city'])->find();

{id:1 , name: 小张, sex:1, city_id:1, city_name:北京}



User::where(['id'=>2])->with(['city'])->find();

{id:2 , name: 小明, sex:1, city_id:0, city_name:null}
现在TP6.0.2里,同样是 ->bind(['city_name'=>'name']);class User extends Model {
    public function city() {
        return $this->belongsTo(City::class)->bind(['city_name'=>'name']);
    }
}
如果存在就是 city_name=北京,不存在就是city=null,
字段名一个是是bind()里指定的city_name,一个是函数名city,
不统一,不利于前端解析。User::where(['id'=>1])->with(['city'])->find();

{id:1 , name: 小张, sex:1, city_id:1, city_name:北京}



User::where(['id'=>2])->with(['city'])->find();

{id:2 , name: 小明, sex:1, city_id:0, city:null}


// 查询多个 in (1, 2)
User::where(['id'=>[1, 2]])->with(['city'])->select();
返回数组,元素的字段不统一
[
  {id: 1 ,   name: 小张,   sex:1,   city_id: 1,   city_name: 北京}
  {id: 2 ,   name: 小明,   sex:1,   city_id: 0,   city: null}
]
评论(
后面还有条评论,点击查看>>