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 метод?

0 ответов

Другие вопросы по тегам