Laravel фрактал передать объект или массив, чтобы включить метод
У меня есть преобразователь, которому я должен передать объект в методе include. Вот так выглядит трансформатор:
class ContentTypeTransformer extends Fractal\TransformerAbstract
{
protected $availableIncludes = [
'content',
'supplementaries',
'intranet'
];
public function transform(ContentType $contentType)
{
return [
'id' => $contentType->id,
'slug' => $contentType->slug,
'name' => ucfirst($contentType->name),
];
}
public function includeContent(ContentType $contentType)
{
$content = $contentType->contents;
return $this->collection($content , new ContentTypePreviewTransformer());
}
public function includeIntranet(ContentType $contentType, ParamBag $params = null)
{
$userTaxonomies = $params->get('userTaxonomies');
$content = Content::where('ct_id', $contentType->id)->whereHas('taxonomies', function($q) use ($userTaxonomies){
$q->whereIn('slug', $userTaxonomies);
})->get();
return $this->collection($content , new ContentTypePreviewTransformer());
}
}
Итак, я должен передать массив $userTaxonomies
к методу includeIntranet
, но не уверен, как мне это сделать в контроллере:
public function index(Request $request)
{
$id = Auth::user()->id;
if (!$id) {
return;
}
$user = User::find($id);
$this->includes = explode(',', $request->get('include'));
$this->addDefaultInclude('intranet');
if (isset($this->includes)) {
$this->response->getManager()->parseIncludes(array_filter($this->includes));
}
$userTaxonomies = $this->getUserTaxonomies($user);
$contentType = ContentType::where('name', 'intranet-post')->first();
if (!$contentType) {
return $this->response->errorNotFound();
}
return $this->response->withItem($contentType, new ContentTypeTransformer());
}
Как я могу передать массив к этому includeIntranet
метод?