В моем приложении Laravel 5 я использую Transformers и Fractal. У меня в моем примере две разные модели: User
и UserLogin
. Каждый пользователь может иметь несколько UserLogins (я уже добавил отношения "один ко многим"). Теперь я хочу "очистить" свой ответ, который возвращает пользователя с его UserLogins. Поэтому я создал два трансформатора, и я подумал, что я должен назвать трансформатор внутри другого внутри своего возвращения, как здесь:
"UserLogins"=> Fractal::collection($user->userLogins, new UserLoginTransformer).......
К сожалению, это не работает, и ошибка в том, что он не находит фрактальную библиотеку (которая правильно импортирована).
В чем может быть проблема?
Наконец нашел решение. Фрактальный класс не существует, я не могу упроститься. И вы неправильно использовали библиотеку.
Итак, решение:
use \League\Fractal\Manager;
use \League\Fractal\Resource\Collection as FractalCollection;
$fractal = new Manager();
$resource = new FractalCollection($user->userLogins, new UserLoginTransformer);
return $fractal->createData($resource)->toArray();