Использовать тот же контроллер, но передавать фильтр?

#laravel

#laravel

Вопрос:

У меня есть ресурс для канала:

 Route::resource('feed', FeedController::class);
 

Но я также хотел бы иметь способ показывать трендовые элементы. Что-то вроде /feed/trending .

Я предпочитаю параметры URL для строки запроса.

Как я могу это настроить? Я рассмотрел:

 Route::resource('feed/{trending?}', FeedController::class);
 

Затем в контроллере:

 public function index($trending = null) {
    //check if trending is not null and filter results based in that
 

Но если вы сделаете /feed/trendingxyz трендирование, это будет конкретное значение.

Есть ли способ иметь параметр, который может перенаправляться на тот же контроллер ресурсов, и в этом контроллере ресурсов проверять, должны ли результаты соответствовать тренду или нет?

Ответ №1:

вам лучше использовать строку запроса
в вашем контроллере, проверьте, есть ли запрос с ключом трендов, а затем покажите тренды:

 public function index(Request $request) {
    if($request->has('trending')) {
        // do something with $request->input('trending') or something else you want
    }
 

Комментарии:

1. Я попросил не использовать строки запроса.

2. @panthro почему бы и нет?