У меня есть этот ответ JSON.В разделе data мне нужно получить только uID и email .Я пытаюсь сделать это с помощью JsonResource, но выдает ошибку.
Это json-ответ без JsonResource
{
"current_page": 1,
"data": [
{
"uID": 1,
"name": "supun",
"email": "supun@gmail.com",
"email_verified_at": null,
"dob": null,
"contactNo": null,
"fbID": null,
"googleID": null,
"bloodGroup": null,
"height": null,
"weight": null,
"lID": 1,
"sID": 1,
"created_at": "2018-10-24 02:41:47",
"updated_at": "2018-10-24 02:41:47",
"deleted_at": null
},
{
"uID": 4,
"name": "supun",
"email": "supun1@gmail.com",
"email_verified_at": null,
"dob": null,
"contactNo": null,
"fbID": null,
"googleID": null,
"bloodGroup": null,
"height": null,
"weight": null,
"lID": 1,
"sID": 1,
"created_at": "2018-10-24 02:52:17",
"updated_at": "2018-10-24 02:52:17",
"deleted_at": null
}
],
"first_page_url": "http://127.0.0.1:8000/api/users?page=1",
"from": 1,
"last_page": 3,
"last_page_url": "http://127.0.0.1:8000/api/users?page=3",
"next_page_url": "http://127.0.0.1:8000/api/users?page=2",
"path": "http://127.0.0.1:8000/api/users",
"per_page": 2,
"prev_page_url": null,
"to": 2,
"total": 5
}
Это ответ, который мне нужно создать с помощью jsonresource
{
"current_page": 1,
"data": [
{
"uID": 1,
"email": "supun@gmail.com"
},
{
"uID": 4,
"email": "supun1@gmail.com"
}
],
"first_page_url": "http://127.0.0.1:8000/api/users?page=1",
"from": 1,
"last_page": 3,
"last_page_url": "http://127.0.0.1:8000/api/users?page=3",
"next_page_url": "http://127.0.0.1:8000/api/users?page=2",
"path": "http://127.0.0.1:8000/api/users",
"per_page": 2,
"prev_page_url": null,
"to": 2,
"total": 5
}
Это мой пользователь UserController
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\User;
use Illuminate\Support\Facades\Auth;
use App\Http\Resources\Users as GetAllUsersResource;
use Validator;
class UserController extends Controller {
public function usersApi( Request $request ) {
$userInfo = User::paginate(2);
$output = new GetAllUsersResource($userInfo);
return response()->json($output, $this->successStatus);
// return response()->json(['status' => true,
// 'message' => 'done',
// 'data' => $output
// ], $this->successStatus);
}
}
а это мой JsonResource
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class Users extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
//return parent::toArray($request->data);
return [
'uID' =>$this->uID,
'email' =>$this->email,
];
}
}
Этоошибка, которую я получил после добавления ее в JsonResource
"message": "Undefined property: Illuminate\\Pagination\\LengthAwarePaginator::$uID",
"exception": "ErrorException",
"file": "E:\\xampp\\htdocs\\myworks\\pharmeasylk\\vendor\\laravel\\framework\\src\\Illuminate\\Http\\Resources\\DelegatesToResource.php",
"line": 120,
Я пробую много других способов, но безуспешно.это работает только в том случае, если пользователь возвращает только одну строку.но нумерация страниц содержит много пользовательских данных и ссылок на данные.Если некоторые могут помочь мне с этим.большая помощь.