求助 dingoApi + league/fractal 中,调用 transformer 中的另一个方法
// Transformers
class AssessTransformer extends TransformerAbstract
{
/**
* @param Assess $assess
* @return array
*/
public function transform(Assess $assess)
{
return [
'id' => $assess->assess_id,
'doctor_id' => $assess->doctor_id,
'member_id' => $assess->member_id,
'parent_id' => $assess->parent_id,
'contents' => $assess->body,
'created_at' => $assess->created_at,
];
}
/**
* @param Assess $assess
* @return mixed
*/
public function contents(Assess $assess)
{
return $assess->contents;
}
}
// 控制器中的回调
return $this->response->item($assess, (new AssessTransformer)->contents($assess));
// 现在的情况是:「AssessTransformer」的`transform`是其它控制器调用的,
// 但是目前的控制器也需要调用「AssessTransformer」,`transform`已经不适用于当前的`transform`方法.
// 那么,如何在当前的控制器中调用「AssessTransformer」的`contents`方法呢?
// 不会一个Transformers就执行一个`function`吧....
我经常使用的一种思路:
而当返回值差异过大时,我也会实现两个 Transformer,类名上作区分即可