1 回答

TA貢獻(xiàn)1844條經(jīng)驗 獲得超8個贊
最后我找到了解決方案。在每個包裝類中,我使用動態(tài)屬性來獲取關(guān)系集合,除了強(qiáng)加額外的查詢外,這會導(dǎo)致延遲加載。因此,在將模型集合傳遞給每個包裝器之前,檢索必要的關(guān)系模型,每個包裝器首先使用方法getRelations()(返回可用關(guān)系數(shù)組)檢查關(guān)系是否存在。如果預(yù)期關(guān)系可用,則將關(guān)系模型集合傳遞到適當(dāng)?shù)陌b類中。
用戶實體包裝器:
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 關(guān)注
- 106 瀏覽
添加回答
舉報