I have a transformer to which I should pass an object in the include method. This is how the transformer looks like:
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());
}
}
So, I should pass an an array $userTaxonomies
, to a method includeIntranet
, but not sure how should I do that in the controller:
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());
}
How can I pass an array to that includeIntranet
method?
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire