Level 67
I'm assuming telemarketers is a collection of many results, and not a single object. You probably have to loop over them to be able to use whatever your hasPages() method is on each individual result instead of the whole array (collection)?
Hello Guys.
I want to use paginate with lazy eager loading (load() method). Here my code:
TelemarketerController.php
public function index(Center $center)
{
$center->load(['telemarketers' => function ($query) {
return $query->paginate();
}]);
return view('centers.telemarketers.index', compact('center'));
}
telemarketers/index.php
@if ($center->telemarketers->hasPages()))
<tfoot>
<tr>
<td colspan="6">{{ $center->telemarketers->links() }}</td>
</tr>
</tfoot>
@endif
Error:
Method Illuminate\Database\Eloquent\Collection::hasPages does not exist. (View: E:\Sites\app\resources\views\centers\telemarketers\index.blade.php)
How can i fix it?
You cannot paginate a nested relation.
You should get telemarketers for centre as their own collection
$telemarketers = $centre->telemarketers()->paginate();
return view('centers.telemarketers.index', compact(['center','telemarketers']));
Please or to participate in this conversation.