从 voyager Translatable 隐藏字段
Hide fields from voyager Translatable
我想在 json 响应中隐藏一些字段。
我使用了 Voyager 多语言功能。所以我的回复如下所示:
$collection = Diet::all()->makeHidden(['description'])->translate(app()->getLocale(), 'en');
return response()->json($collection);
但描述字段包含在响应中。它在没有 ->translate(app()->getLocale(), 'en')
的情况下工作完美。如何隐藏描述字段?
为了隐藏这些字段,我创建了 JsonResource,如下所示:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class DietCollection extends JsonResource
{
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
//here we return only required fields
return [
'id' => $this->id,
'title' => $this->title,
'image' => $this->image,
];
}
}
并像这样使用它:
$collection = Diet::all()->translate(app()->getLocale(), 'en');
return response()->json(DietCollection::collection($collection));
我想在 json 响应中隐藏一些字段。 我使用了 Voyager 多语言功能。所以我的回复如下所示:
$collection = Diet::all()->makeHidden(['description'])->translate(app()->getLocale(), 'en');
return response()->json($collection);
但描述字段包含在响应中。它在没有 ->translate(app()->getLocale(), 'en')
的情况下工作完美。如何隐藏描述字段?
为了隐藏这些字段,我创建了 JsonResource,如下所示:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class DietCollection extends JsonResource
{
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
//here we return only required fields
return [
'id' => $this->id,
'title' => $this->title,
'image' => $this->image,
];
}
}
并像这样使用它:
$collection = Diet::all()->translate(app()->getLocale(), 'en');
return response()->json(DietCollection::collection($collection));