안녕하세요 여러분, 저는 이 라이브러리 https://github.com/dvajs/dva/를 사용합니다... yii2의 나머지 API를 요청할 때 x-pagination-page-count, x-pagination-total-count
헤더와 서버에서 반환된 기타 정보를 어떻게 패키징할 수 있나요? 반환 결과는?
<code>x-pagination-current-page:1 x-pagination-page-count:35 x-pagination-per-page:12 x-pagination-total-count:411</code>
데이터 개체에 목록(원래 반환 결과), x-pagination-total-count, x-pagination-page-count 및 기타 서버 헤더 정보가 포함되도록 반환된 데이터를 다시 패키징하기를 바랍니다
하지만 이제 순수한 REST 반환 결과가 배열이라는 것만 알 수 있습니다. 요청 클래스에서 데이터를 다시 캡슐화하려고 시도했지만 모든 시도가 실패했습니다. 가능한 잘못된 키워드를 찾았습니다.
필요한 물건으로 어떻게 포장할 수 있는지 알려주세요!!!
<code> const {data} = yield call(query, parse(payload)); if (data) { console.log(data); //!!!这里!!! 我希望将这里返回的data 重新包装下,使data对象list, 服务器头信息,x-pagination-total-count,x-pagination-page-count.等信息 // 但是现在 我只能获取到, 纯粹的rest返回结果 是个数组. 我尝试在 request类中重新封装数据, 各种尝试都失败了. 各种搜 可能是关键词不对 也没有找到解决办法. yield put({ type: 'querySuccess', payload: { list: data.list, total: Number(data.total), current: Number(data.current), pageSize: data.pageSize ? data.pageSize : 12, } }); }</code>
<code>export async function query(params) { return request(`/api/users?${qs.stringify(params)}`); }</code>
<code>import fetch from 'dva/fetch'; function checkStatus(response) { if (response.status >= 200 && response.status < 300) { //这里是可以读取到这些信息的. 但是我不会重新包装. console.log(response.headers.get('x-pagination-page-count')); //35 console.log(response.headers.get('x-pagination-total-count')); //411 return response; } const error = new Error(response.statusText); error.response = response; throw error; } function parseJSON(response) { return response.json(); } /** * Requests a URL, returning a promise. * * @param {string} url The URL we want to request * @param {object} [options] The options we want to pass to "fetch" * @return {object} An object containing either "data" or "err" */ export default function request(url, options) { return fetch(url, options) .then(checkStatus) .then(parseJSON) .then((data)=>({data})) .catch((err) => ({ err })); } </code>
<code><?php namespace api\modules\test\controllers; use yii; use yii\helpers\ArrayHelper; class UsersController extends yii\rest\ActiveController { public $modelClass = '\common\models\User'; public function behaviors() { return ArrayHelper::merge(parent::behaviors(), [ 'corsFilter' => [ 'class' => \yii\filters\Cors::className(), 'cors' => [ // restrict access to 'Origin' => ['*'], 'Access-Control-Request-Method' => ['*'], 'Access-Control-Request-Headers' => ['*'], 'Access-Control-Allow-Credentials' => true, // Allow OPTIONS caching 'Access-Control-Max-Age' => 3600, // Allow the X-Pagination-Current-Page header to be exposed to the browser. 'Access-Control-Expose-Headers' => ['X-Pagination-Current-Page'], ], ], ]); } public function actions() { $actions = parent::actions(); // 禁用"delete" 和 "create" 操作 unset($actions['delete'], $actions['create']); return $actions; } }</code>
안녕하세요 여러분, 저는 이 라이브러리 https://github.com/dvajs/dva/를 사용합니다... yii2의 나머지 API를 요청할 때 x-pagination-page-count, x-pagination-total-count
헤더와 서버에서 반환된 기타 정보를 어떻게 패키징할 수 있나요? 반환 결과는?
<code>x-pagination-current-page:1 x-pagination-page-count:35 x-pagination-per-page:12 x-pagination-total-count:411</code>
데이터 개체에 목록(원래 반환 결과), x-pagination-total-count, x-pagination-page-count 및 기타 서버 헤더 정보가 포함되도록 반환된 데이터를 다시 패키징하기를 바랍니다
하지만 이제 순수 REST 반환 결과가 배열이라는 것만 알 수 있습니다. 요청 클래스에서 데이터를 다시 캡슐화하려고 시도했지만 모든 시도가 실패했습니다. 가능한 잘못된 키워드를 찾았습니다.
필요한 물건으로 어떻게 포장할 수 있는지 알려주세요!!!
<code> const {data} = yield call(query, parse(payload)); if (data) { console.log(data); //!!!这里!!! 我希望将这里返回的data 重新包装下,使data对象list, 服务器头信息,x-pagination-total-count,x-pagination-page-count.等信息 // 但是现在 我只能获取到, 纯粹的rest返回结果 是个数组. 我尝试在 request类中重新封装数据, 各种尝试都失败了. 各种搜 可能是关键词不对 也没有找到解决办法. yield put({ type: 'querySuccess', payload: { list: data.list, total: Number(data.total), current: Number(data.current), pageSize: data.pageSize ? data.pageSize : 12, } }); }</code>
<code>export async function query(params) { return request(`/api/users?${qs.stringify(params)}`); }</code>
<code>import fetch from 'dva/fetch'; function checkStatus(response) { if (response.status >= 200 && response.status < 300) { //这里是可以读取到这些信息的. 但是我不会重新包装. console.log(response.headers.get('x-pagination-page-count')); //35 console.log(response.headers.get('x-pagination-total-count')); //411 return response; } const error = new Error(response.statusText); error.response = response; throw error; } function parseJSON(response) { return response.json(); } /** * Requests a URL, returning a promise. * * @param {string} url The URL we want to request * @param {object} [options] The options we want to pass to "fetch" * @return {object} An object containing either "data" or "err" */ export default function request(url, options) { return fetch(url, options) .then(checkStatus) .then(parseJSON) .then((data)=>({data})) .catch((err) => ({ err })); } </code>
<code><?php namespace api\modules\test\controllers; use yii; use yii\helpers\ArrayHelper; class UsersController extends yii\rest\ActiveController { public $modelClass = '\common\models\User'; public function behaviors() { return ArrayHelper::merge(parent::behaviors(), [ 'corsFilter' => [ 'class' => \yii\filters\Cors::className(), 'cors' => [ // restrict access to 'Origin' => ['*'], 'Access-Control-Request-Method' => ['*'], 'Access-Control-Request-Headers' => ['*'], 'Access-Control-Allow-Credentials' => true, // Allow OPTIONS caching 'Access-Control-Max-Age' => 3600, // Allow the X-Pagination-Current-Page header to be exposed to the browser. 'Access-Control-Expose-Headers' => ['X-Pagination-Current-Page'], ], ], ]); } public function actions() { $actions = parent::actions(); // 禁用"delete" 和 "create" 操作 unset($actions['delete'], $actions['create']); return $actions; } }</code>