thinkphp5.0.11模型关联的BUG

浏览:680 发布日期:2017/10/19
5.0.0 - 普通 - 未处理
在thinkphp5.0.11版本中,如果在model里面定义一对一关联,或一对多关联,或多对多关联,然后对关联添加with或where条件,在某些情况下会导致with或where条件不生效,类似下面<?php
namespace app\common\model;
class Task extends Base{

    //全部下级任务
    public function sub(){
        return $this->hasMany('Task')->with([
            'type',
            'tag',
            'attach'=>function($query){
                return $query->with(['file']);
            },
            'comments',
        ]);
    }

    //任务类型
    public function type(){
        return $this->hasOne('TaskType','id','type_id');
    }

    //任务标签
    public function tag(){
        return $this->belongsToMany('TaskTag','TaskTagRelation','tag_id','task_id');
    }

    //评论
    public function comments(){
        return $this->hasMany('Comments','main_id','id')->where('main_type','101');
    }

    //附件
    public function attach(){
        return $this->hasMany('Attach','main_id','id')->where('main_type','101');
    }

}
在控制器里面调用了task类。model('task')->with(['sub'])->select();最后查询的结果里面,sub数组下的task对象没有正确关联模型内定义的关联对象{
    "desc": "success",
    "code": "200",
    "data": [
        {
            "id": "1",
            "company_id": "1",
            "department_id": "1",
            "project_id": "0",
            "meeting_id": "0",
            "task_id": "0",
            "p_id": "0",
            "type_id": "2",
            "time_type": "103",
            "user_id": "1",
            "executor_id": "1",
            "title": "",
            "content": "这是一个月计划",
            "status": "101",
            "submit_time": "0",
            "reviewer_id": "0",
            "r_content": "",
            "r_time": "0",
            "star": "5",
            "s_date_time": "101",
            "e_date_time": "101",
            "s_time": "1506787200",
            "e_time": "1509465600",
            "use_time": "0",
            "sub_count": "0",
            "res": "",
            "c_time": "0",
            "del_time": {},
            "type": {
                "id": "2",
                "name": "管理",
                "sort_name": "管",
                "star": "0",
                "desc": "",
                "c_time": "0",
                "del_time": {}
            },
            "tag": [],
            "attach": [
                {
                    "id": "1",
                    "company_id": "1",
                    "main_id": "1",
                    "main_type": "101",
                    "user_id": "1",
                    "recipient_id": "1",
                    "file_id": "1",
                    "token": "",
                    "name": "测试附件",
                    "size": "0",
                    "down_count": "0",
                    "c_time": "0",
                    "del_time": {},
                    "down_load_url": "xxx.png",
                    "file": {
                        "id": "1",
                        "name": "测试文件",
                        "type": "101",
                        "url": "http://www.exec.local/uploads/xxx.png",
                        "status": "101",
                        "c_time": "0",
                        "del_time": {}
                    }
                }
            ],
            "comments": [],
            "sub": [
                {
                    "id": "2",
                    "company_id": "1",
                    "department_id": "1",
                    "project_id": "0",
                    "meeting_id": "0",
                    "task_id": "1",
                    "p_id": "1",
                    "type_id": "1",
                    "time_type": "102",
                    "user_id": "1",
                    "executor_id": "1",
                    "title": "",
                    "content": "这是一月的第一个周计划",
                    "status": "101",
                    "submit_time": "0",
                    "reviewer_id": "0",
                    "r_content": "",
                    "r_time": "0",
                    "star": "4",
                    "s_date_time": "101",
                    "e_date_time": "101",
                    "s_time": "1506787200",
                    "e_time": "1507392000",
                    "use_time": "0",
                    "sub_count": "0",
                    "res": "",
                    "c_time": "0",
                    "del_time": {},
                }
            ]
        }
    ]
}
这个BUG在thinkphp5.0.10以及之前的版本不存在,希望如果不是BUG能告知,谢谢!
评论(
后面还有条评论,点击查看>>