Передача более трех параметров на маршрут в Laravel - PullRequest
0 голосов
/ 26 октября 2019

Я получил ошибку "Отсутствуют обязательные параметры для маршрута", хотя я использовал правильный. Кто может поддержать меня, пожалуйста?

    Route::Group(['prefix' => 'shop'], function () {
    Route::get('product_page/orderby/{pa1}/rangeform/{pa2}/rangeto/{pa3}/type/{pa4}', ['as' => 'product_page', 'uses' => 'shopcontroller@product_page']);
    });
    public function product_page($orderby,$rangeForm,$rangeTo,$type){
           // do something
    }
   <a href="{{ route('product_page',['orderby'=>'1','rangeto'=>'50000','rangeform'=>'500000','type'=>'1']) }}"><img src="/source/images/p1.jpg" class="img-responsive" alt="" />

"Отсутствуют обязательные параметры для [Route: product_page] [URI: shop / product_page / orderby / {pa1} / rangeform /{pa2} / rangeto / {pa3} / type / {pa4}]. (Представление: E: \ shopmarket \ resources \ views \ shop \ product.blade.php) "

Ответы [ 2 ]

0 голосов
/ 26 октября 2019

Имя параметра в функции должно быть таким же, как в url {var}

public function product_page($pa1,$pa2,$pa3,$pa4){
   // do something
0 голосов
/ 26 октября 2019

Параметры вашего маршрута и вашей функции должны совпадать (имена и количество параметров). В вашем случае у вас есть 8 параметров вместо 4, функция product_page должна выглядеть следующим образом:

public function product_page($orderby,$rangeform,$rangeto,$type){
       // do something
}

и изменить Get Router следующим образом (с дополнительными параметрами):

Route::get('product_page/{orderby?}/{rangeform?}/{rangeto?}/{type?}', ...
});

Также убедитесь, что при создании URL-адреса в соответствии с полученным URL-адресом он должен быть следующим:

/ product_page? Order_by = 1 & rangeform = 50000 & rangeto = 50000 & type = 1

Надеюсь, это поможет!

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