Я пытаюсь получить некоторые данные из базы данных с помощью Laravel. Часть выборки работает нормально, пока я не хочу использовать разбиение на страницы для данных.
В моем контроллере (RepairController) я использую эту функцию, чтобы получить все (без разбиения на страницы):
$pendingRepairs = Repair::get()->where('status.completed', 0);
Это прекрасно работает. Пока я не добавлю функцию пагинации. Затем мне выдает ошибку:
BadMethodCallException
Method Illuminate\Database\Eloquent\Collection::paginate does not exist.
Некоторые исследования в Интернете показывают мне, что мне нужно удалить часть ::get(). Но как? Какова альтернатива использованию части get, поскольку я использую значение внешнего ключа status.completed?
Мой ремонтный контроллер:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Repair;
class RepairController extends Controller
{
public function index()
{
$allRepairs = Repair::get();
$pendingRepairs = Repair::get()->where('status.completed', 0)->paginate(2);
$doneRepairs = $allRepairs->where('status.completed', 1);
return view('repair.index', [
'pendingRepairs' => $pendingRepairs, 'doneRepairs' => $doneRepairs
]);
}
....
}
В Repair.php у меня есть ссылка на статусы:
public function status()
{
return $this->belongsTo(\App\Status::class);
}
Любые идеи? Спасибо :)