2016-10-04 35 views
0

我想通過他們的appRole列出人員。這裏的控制器:傳遞的數據從Laravel頁面2開始丟失

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

爲什麼你不使用'Paginate'。以下是示例[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,則可能需要使用paginate(20) - > appends('get get paramters')來獲得第2頁的正確鏈接 – rypskar

回答

0

我解決了這個問題。對於AppRole,我還使用了一個分頁程序,所以通過使用all()而不是paginate()來修復這個問題,以獲得所有的appRoles。

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

和:

// After............ 
public function forAll() 
{ 
    return AppRole::all(); 
} 
相關問題