Laravel dingoApi 的 Transformers 问题?
然而我还想调用
AuthenticateTransformers
里的getAuthenticatedUser
怎么能做到?不会一个Transformers就执行一个function
吧.... 以下是代码
// Transformers
class AuthenticateTransformers extends TransformerAbstract
{
/**
* @param \App\Models\Customer $customer
*
* @return array
*/
public function transform(Customer $customer)
{
return [
'id' => $customer['id'],
'name' => $customer['name'],
'username' => $customer['username']
];
}
/**
* @param \App\Models\Customer $customer
*
* @return array
*/
public function getAuthenticatedUser(Customer $customer)
{
return [
'id' => $customer['id'],
'name' => $customer['name'],
'username' => $customer['username'],
'secret' => $customer['secret'],
'startDate' => $customer['startDate']
];
}
}
// 回调
return $this->item($customer, new AuthenticateTransformers, function ($resource, $fractal) {
$fractal->setSerializer(new CustomSerializer());
});
// 然而我还想调用`AuthenticateTransformers`里的`getAuthenticatedUser`怎么能做到?不会一个Transformers就执行一个`function`吧....
用传统的方法确实只会调用
transform()
, 你可以参考一下在transform()
里面调用,或者在外部(new AuthenticateTransformers)->getAuthenticatedUser($customer)
@小恪守 谢谢解惑,本以为
transform
会像Repositories
方式调用居然不行...@小恪守 好像不行耶,我现在遇到了一个同样的问题,帖子地址 问答:求助 dingoApi + league/fractal 中,调用 transformer 中的另一个方...
在外部 (new AuthenticateTransformers)->getAuthenticatedUser($customer) 的这种方式依然是调用默认的 transformer 方法,但是在 transform 内部调用,似乎失去了 transform 的本意。