src/ApiBundle/Api/Util/ObjectCombinationUtil.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace ApiBundle\Api\Util;
use AppBundle\Common\ArrayToolkit;
class ObjectCombinationUtil
{
private $biz;
private $serviceMap = array(
'user' => 'User:UserService',
'course' => 'Course:CourseService',
'courseSet' => 'Course:CourseSetService',
'classroom' => 'Classroom:ClassroomService',
);
private $methodMap = array(
'user' => 'findUsersByIds',
'course' => 'findCoursesByIds',
'courseSet' => 'findCourseSetsByIds',
'classroom' => 'findClassroomsByIds',
);
public function __construct($biz)
{
$this->biz = $biz;
}
/**
* @param $targetObjectType
* @param $sourceObj
* @param array $targetIdFields
*/
public function single(&$sourceObj, array $targetIdFields, $targetObjectType = 'user')
{
if (!$sourceObj) {
return;
}
$targetIds = $this->findTargetIds($sourceObj, $targetIdFields);
$targetObjects = $this->findTargetObjects($targetObjectType, $targetIds);
$this->replaceSourceObject($targetObjects, $sourceObj, $targetIdFields);
}
/**
* 将 指定属性替换为对象
* 如 multiple($orderLogs, array('user_id'), 'user'),会将 orderLogs 中的 user_id 替换为 user对象
*
* @param $targetObjectType 分为 user, course, courseset, 见全局变量 $serviceMap
*/
public function multiple(&$sourceObjects, array $targetIdFields, $targetObjectType = 'user')
{
if (!$sourceObjects) {
return;
}
$targetIds = array();
foreach ($sourceObjects as $sourceObject) {
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。