]) ->with('supervisorgroup') ->with('superviseegroup'); $projects = $gres->getLoad('isProjectHelper') ? $projects->where('orgid', $req->orgid) : $projects->whereIn('id', $gres->getLoad('projectids')); $projects = querykeywords($projects, ['name'], $req->keywords); $projects = $projects ->orderBy('name', 'DESC') ->orderBy('category') ->get() ->map(function ($project) { $_project = json_decode(json_encode($project)); $supervisorgroup = $project->supervisorgroup()->exists() ? $project->supervisorgroup()->first() : null; $superviseegroup = $project->superviseegroup()->exists() ? $project->superviseegroup()->first() : null; $_project->categoryname = Project::categories[$project->category]; $_project->supervisorgroupid = $supervisorgroup ? $supervisorgroup->id : 0; $_project->supervisorgroupname = $supervisorgroup ? $supervisorgroup->name : '尚未设置'; $_project->superviseegroupid = $superviseegroup ? $superviseegroup->id : 0; $_project->superviseegroupname = $superviseegroup ? $superviseegroup->name : '尚未设置'; return $_project; });
时间: 2024-04-16 21:25:06 浏览: 170
这部分代码对之前查询得到的$projects变量进行了一系列的处理和加工。
首先,使用with方法加载了'supervisorgroup'和'superviseegroup'关联模型。
接下来,根据$gres对象的属性判断是否需要根据orgid或projectids进行过滤。如果isProjectHelper为true,则根据req对象的orgid进行过滤,否则根据gres对象的projectids进行过滤。
然后,使用querykeywords函数对$projects进行了关键字搜索,搜索字段为'name',搜索关键字为req对象的keywords。
接着,对$projects进行了排序,首先按照'name'字段降序排序,然后按照'category'字段排序。
之后,调用get方法获取查询结果,并使用map方法对每个$project进行了一系列的处理。
在map方法中,首先将$project对象转换成了$_project对象,以便后续操作。然后,通过supervisorgroup和superviseegroup关联关系判断是否存在对应的关联记录,并分别赋值给$supervisorgroup和$superviseegroup变量。
接下来,给$_project对象添加了一些属性:'categoryname'表示项目类别的名称(根据项目类别从Project类的categories数组中获取),'supervisorgroupid'表示监督组的ID(如果存在监督组则取ID,否则为0),'supervisorgroupname'表示监督组的名称(如果存在监督组则取名称,否则为'尚未设置'),'superviseegroupid'表示受监督组的ID(如果存在受监督组则取ID,否则为0),'superviseegroupname'表示受监督组的名称(如果存在受监督组则取名称,否则为'尚未设置')。
最后,返回处理后的$_project对象。
如果你有任何疑问,请继续提问。
阅读全文