私が取り組んでいるプロジェクトを簡単に検索しています。ほとんどの場合、かなりうまく動作します。 ->filter(function($item) { .. })
を使用しているときに問題が発生しています。ここで Laravel 5.5コレクションでフィルタを使用したときのJSONの不一致
$users = App\User::select(['id', 'username', 'preferred_first_name', 'preferred_last_name'])
->where('username', 'like', $like)
->orWhere('preferred_first_name', 'like', $like)
->orWhere('preferred_last_name', 'like', $like)
->orWhere('id', $query)
->get();
$users = $users->filter(function($item) {
return !$item->is_terminated();
});
return UserResource::collection($users);
そしてここtoArray
機能UserResource
である:私が午前問題は、JSONの一部は、2つの異なるフォーマットで返され
public function toArray($request)
{
return [
'id' => $this->id,
'username' => $this->username,
'full_name' => $this->full_name,
];
}
:
フォーマットA:{ data: [ {..}, {..}, .. ] }
フォーマットB:{ data: {"0": {..}, "1":{..},..} }
すべてのJSONが常にフォーマットAで返されるようにしたいと思います。私はfilter()
の機能を絞り込んだ。しかしそれは矛盾している。検索用語san
では、形式Bで返されますが、pha
という形式で返されます。取り除かれた場合、すべてが正しく動作し、適切な形式(形式A)で返されます。
何が含まれる必要があるかわからないときに私に知らせてくれるコードがありません。