Laravel 5.1 Route :: controller с дополнительными параметрами URL? - PullRequest
0 голосов
/ 29 мая 2020

У меня есть этот код в маршрутах

Route::controller('/orders/{from}/{to}', 'CartController');

ссылка примерно такая

localhost/admin/orders/2020-01-01/2020-01-02

это откроет все записи между двумя датами

Но у меня есть еще одна ссылка, примерно такая

localhost/admin/orders/4212

, чтобы открыть определенную c строку на новой вкладке

Эти 2 ссылки соответствуют 1 функции

назвал это

 public function getIndex($from,$to){


 }

могу ли я сделать эти параметры необязательными? с 1 Route::controller('/orders/{from}/{to}', 'CartController'); в моем маршруте. php?

Ответы [ 3 ]

2 голосов
/ 29 мая 2020

Вы можете сделать любой из ваших параметров необязательным, просто добавив ? в конце имени параметра. Простой пример:

Route::controller('/orders/{from?}/{to?}', 'CartController');

Кроме того, я заметил, что вы не вызываете никаких действий вашего контроллера в определении маршрута. Если вы хотите, чтобы этот маршрут вел к вашему методу getIndex (), измените его на это:

Route::controller('/orders/{from?}/{to?}', 'CartController@getIndex');

Подробнее читайте в официальной документации .

0 голосов
/ 29 мая 2020

Вы можете использовать это как

Route::controller('/orders/{from}/{to?}', 'CartController');

И в вашем контроллере

public function getIndex($from,$to=null){
    if($to==null){
        //to open specific row on a new tab
    }
    else{
        // Other task
    }

}
0 голосов
/ 29 мая 2020

Попробуйте это:

Route::controller('/orders/{from?}/{to?}', 'CartController');
public function getIndex($from = false,$to = false){


}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...