1) В моем файле AuteurRepository как мне создать свою функцию
Индекс ()
Вы можете дать ему имя, что вы хотите, index (), allRecords (), .... И выполнить запрос, который вам нужен.
Мой второй вопрос в моем AuteurController. Я не понимаю, что
делать?
Если ваш репозиторий выглядит так:
class AuteurRepository
{
public function index()
{
return Auteur::oldest()->paginate(5);
}
}
В вашем контроллере вы можете получить доступ к функции индекса репо следующим образом:
class AuteurController extends Controller
{
protected $auteurs;
public function __construct(AuteurRepository $auteurs)
{
$this->auteurs = $auteurs;
}
public function index(Request $request)
{
$auteurs = $this->auteurs->index();
return view('admin.auteurs.index', compact('auteurs'))
}
}
EDIT
Также вы можете немного настроить запрос. Например:
В репозитории примите параметр в индексном методе:
class AuteurRepository
{
public function index($filters)
{
$pagination = $filters['pagination'];
$order = $filters['order'];
return Auteur::orderBy('created_at', $order)
->paginate($pagination);
}
}
И в контроллере создать массив для передачи в качестве параметра:
$filters = [
'pagination' => 5,
'order' => 'asc',
];
или
$filters = [
'pagination' => 10,
'order' => 'desc',
];
Или вы можете получить значения из запроса (обязательно оставьте значение по умолчанию, если входные данные запроса равны нулю)
$filters = [
'pagination' => $request->input('pagination')?: 5,
'order' => $request->input('order')?: 'asc',
];
и затем передать параметр в репо:
$auteurs = $this->auteurs->index($filters);
Надеюсь, это поможет; -)