2016-10-04 4 views
0

해당 앱 롤별로 사람을 나열하려고합니다. 여기 컨트롤러는 다음과 같습니다2 페이지부터 시작되는 Laravel 페이징 담당자에서 전달 된 데이터가 손실되었습니다.

public function indexByAppRole(Request $request, $appRoleId) 
{ 
    $h1 = AppRole::where('id', $appRoleId)->first()->name; 

    return view('admin.people.index', [ 
     'people' => $this->people->byAppRole($appRoleId), 
     'appRoles' => $this->appRoles->forAll(), 
     'h1'  => 'Role: '. $h1, 
    ]); 
} 

매기기는 저장소에 사용됩니다

public function byAppRole($appRoleId) 
{ 
    return Person::where('person_app_role.app_role_id', $appRoleId) 
    ->join('person_app_role', 'person_app_role.person_id', '=', 'people.id') 
    ->select('people.*') // fix ID confusion but why? 
    ->paginate(20); 
} 

주요보기는 반환 명을 나열합니다.

<ul class="list-group nav nav-pills nav-stacked"> 
    @foreach ($appRoles as $appRole) 
     <li> 
      <a href="{{ route('admin.people.appRole', ['appRoleId' => $appRole->id]) }}">{{ str_plural($appRole->name) }}</a> 
      </li> 
     @endforeach 
</ul> 

탐색 목록이 검색 결과 또는 명부의 1 페이지에 작동하지만, 목록은 2 페이지와 다음 페이지에 게재되지 않습니다 사이드 바에서, 나는 측면 탐색으로 다음 목록을 가지고있다. 나는 무엇을 잘못 했는가?

+0

. 다음은 예제입니다. [http://tutsnare.com/how-to-create-pagination-in-laravel/] Laravel 설명서를 참조하십시오. [https://laravel.com/docs/5.3/pagination] – Manish

+0

@Manish 저장소에 Paginate를 사용했습니다. 나는 이것을 반영하기 위해 본문을 수정했다. –

+0

2 페이지 링크는 어떻게 생겼습니까? get 매개 변수가 누락 될 수 있습니다. get 매개 변수를 사용하여 페이지 1을 얻는다면 페이지 2에 대한 올바른 링크를 얻기 위해'paginate (20) -> appends ('당신의 get paramters)'를 사용해야 할 것입니다 – rypskar

답변

0

나는이 문제를 해결했다. AppRole의 경우 페이지 매기기도 사용 했으므로 paginate() 대신 all()을 사용하여 수정하여 모든 appRoles를 가져 왔습니다.

// Before........... 
public function forAll() 
{ 
    return AppRole::paginate(20); 
} 

: 그리고 당신은`Paginate`을 사용하지 말아 왜

// After............ 
public function forAll() 
{ 
    return AppRole::all(); 
}