Как использовать Guzzle с нумерацией страниц - PullRequest
0 голосов
/ 29 августа 2018

Я использую Guzzle для извлечения API из URL сервера API, и я хочу получить данные и используя нумерацию страниц. Я пытаюсь это:

$request_url="http://192.168.0.1:8081/APIServer/public/api/products";
        $client = new \GuzzleHttp\Client();
        $response = $client->request('GET', $request_url, [
            'headers' => ['Accept' => 'application/xml',
                          'Authorization' => 'Bearer ' . $token,
                          'Content-Type' => 'application/json'
                         ],
            'timeout' => 120
        ])->getBody()->getContents();

        $responseXml = simplexml_load_string($response);
        $responseArray = json_decode(json_encode($responseXml), true);

        return view('dashboard')->with(array('data'=>$responseArray['stdClass']));

Как я могу использовать нумерацию страниц с жадностью?

1 Ответ

0 голосов
/ 29 августа 2018

Краткий ответ: вы не можете

Длинный ответ: нумерация страниц Laravel предназначена для красноречивых запросов, а не для каких-либо данных, которые у вас есть.

Я бы порекомендовал управлять этим на переднем крае. Но вы можете сделать что-то вроде этого:

//results may vary according to your data:
$page = !($request->page) ? 1 : $request->page];
$no_items = 5;
$offset = ($page - 1) * $no_items;
$total_items = count($responseArray);
$total_pages = ceil($total_items / $no_items);
$final = array_splice($responseArray, $offset, $no_items);

На основании принятого ответа на этот вопрос: Как выполнить разбиение на страницы для данных JSON в PHP?

...