1 回答
TA贡献1844条经验 获得超8个赞
最后我找到了解决方案。在每个包装类中,我使用动态属性来获取关系集合,除了强加额外的查询外,这会导致延迟加载。因此,在将模型集合传递给每个包装器之前,检索必要的关系模型,每个包装器首先使用方法getRelations()(返回可用关系数组)检查关系是否存在。如果预期关系可用,则将关系模型集合传递到适当的包装类中。
用户实体包装器:
class UserEntityWrapper extends EntityWrapper
{
protected $entityClass = UserEntity::class;
protected function makeEntity($userEntity, $model)
{
$userEntity->setId($model->user_id);
$userEntity->setName($model->name);
// set other properties of user entity...
//--------------- relations -----------------
$relations = $model->getRelations();
$products = $relations['products'] ?? null;
if ($products) {
$userEntity->setProducts((new ProductEntityWrapper($products))->entity);
}
return $userEntity;
}
}
并且,类似的功能用于其他包装器。
- 1 回答
- 0 关注
- 128 浏览
添加回答
举报
