2016-12-08 2 views
3

페이지를 매기는 추가 수 :

$book = Data::where('userId','1')->paginate(3); 
$book->printWord = 'Hellow!'; 
return response()->json($book); 
:

data:[{id: 1, userId: 1, vendorId: 1, name: "Alfreda Berge PhD", phone: "1-850-813-5950 x96169",…},…] 
from:1 
last_page:2 
next_page_url: "http:/localhost/XX/public/user/book/list/1?page=2" 
perpage:4 
prev_page_url:null 
to:4 
total:5 
// if I want to add a new column and value here ,what should I do? 

내가이 일을 시도

그러나 열 이 제거 된 것으로 보입니다. 아이디어가 있으십니까?

답변

8

당신은 사용자 정의 데이터 수집을 수동으로 작성하고 merge() 도우미 사용할 수 있습니다

$book = Data::where('userId','1')->paginate(3); 

$custom = collect(['my_data' => 'My custom data here']); 

$data = $custom->merge($book); 

return response()->json($data); 

그냥 확인해도 올바르게 작동합니다.

1

paginate 함수는 Illuminate\Pagination\LengthAwarePaginator 유형의 개체를 반환하지만 다른 필드를 추가 할 수는 없습니다.

나는 최선의 해결책은 페이지 매김 개체와 다른 값을 배열에 추가하고이 배열을 json으로 변환하는 것이라고 생각합니다. 이렇게하면 도서 데이터가 추가하려는 다른 데이터와 분리됩니다.

과 같이 :이 경우

return response()->json([ 
    'books' => $books, 
    'foo' => 'bar' 
]); 

당신의 JSON 개체는 다음과 같이 표시됩니다

{ 
    books: { 
     // Pagination object with books 
    } 
    foo: 'bar' 
} 
+1

이렇게 되돌릴 수 있습니까? 응답() -> json ($ books); – Fan

+0

예, 배열을 미리 만들고'$ books'에 할당하면됩니다. 그러나 그것은 똑같을 것입니다. – Jerodev

+0

좋아요, 'Illuminate \ Pagination \ LengthAwarePaginator'라는 키워드가 있는데 다른 필드를 추가 할 수 없습니다. 감사합니다. – Fan