хотел создать маршрут, как это, но не смог найти точное значение параметра в контроллере? - PullRequest
0 голосов
/ 03 июня 2019

Проблемы с slug1 и slug2

Route::get("/something/{slug1}-{slug2}-sample-sample" , "Controller@Method")->where(['slug1'=>'[a-z0-9-]+', 'slug1'=> '[a-z0-9-]+');

, где слагы могут быть xxx-гггг или только xxx

Я получаю только одно значение параметра

1 Ответ

1 голос
/ 03 июня 2019

Поскольку вы указали slug1 дважды в методе where, поэтому ваш маршрут проверяет только первый слаг дважды, вы также забыли закрыть массив:

Route::get("/something/{slug1}-{slug2}" , "Controller@Method")->where(['slug1'=>'([\w]+[-]{1}[\w]+)', 'slug2'=> '([\w]+[-]{1}[\w]+)']);

Если впоследствии вы захотитечтобы получить эти значения в вашем контроллере, используя ваш Method, вы можете передать эти слага в этом методе в качестве параметра:

public function Method($slug1, $slug2)
{
    dump($slug1, $slug2); //will display both slug's value
}

Если вы хотите передать их вашему виду :

public function Method($slug1, $slug2)
{
    return view('your-blade-view', ['slug1' => $slug1, 'slug2' => $slug2]);
}

И чтобы получить их из вашего поля зрения

{{ $slug1 }} //echo first slug
{{ $slug2 }} //echo second slug

Обновление: это тот REGEX, который вы искали: ->where(['slug1'=>'([\w]+[-]{1}[\w]+)', 'slug2'=> '([\w]+[-]{1}[\w]+)']); см. здесь.

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