Поскольку вы хотите сделать некоторые обычно видимые атрибуты скрытыми для данного экземпляра модели , вы можете использовать метод makeHidden.
return $ user-> makeHidden ('attribute') -> toArray ();
Здесь $ user представляет модель пользователя
Пример: использовать makeHidden с кодом, чтобы скрыть столбец в результате разбивки на страницы
$result = Job::where('user_id','=',Auth::id())->paginate(5);
$data =$result;
$result= $result->makeHidden(['hasMessage']);
$data->data = $result;
return $data;
В вашем случае:
$result = ManageResource::make($user)->makeHidden(['id','email'])->toArray();
$data->data = $result;
return $data;
или
$result = User::whereApiToken($request->api_token)->first()->setHidden(['id', 'email']);
$data->data = $result;
return $data;
Примечание:
Насколько я знаю, makeHidden не влияет на отношения. Было бы хорошо, если бы он позволял вам указывать атрибуты в отношениях как -makeHidden (['Relations.field']). В качестве альтернативы вы можете использовать следующий код
App \ Models \ Product :: with (['images' => function ($ query) {
$ Query-> выберите ([ 'идентификатор', 'product_id', 'IMAGE_URL',
'row_id']) -> orderBy ('creation_at', 'desc');
}]) -> получаем () -> makeHidden ([ 'ID']);
В вашем случае
$tickets = UserTickets::with(['user', 'reply' => function ($query) use ($user) {
$query->with('user')->select(['id','Attrib1','Attrib2'])->whereUserId($user->id);
}])->whereTicketNumber($request->ticket_number)->get();