Повторение переменных в маршрутах laravel

279
31 декабря 2017, 08:28

Есть URL, к которому надо прийти: site.com/catalog/cat1/cat2/25-rose-1.html, где cat1 cat2 - это категории, 25-rose - это алиас товара, а 1 - это его ID.

Делаю вот так:

Route::get('catalog/{parentCategory}/{childrenCategory}/{productAlias}-{productId}.html', function($parentCategory, $childrenCategory, $productAlias, $productId){
echo 'Parent category: '. $parentCategory .
    ' Children category: '.$childrenCategory.
    ' Product alias: '.$productAlias.
    ' Product ID: '.$productId;
});

Но результат получается такой:

Parent category: cat1 
Children category: cat2 
Product alias: 25 
Product ID: rose-1

Вопрос: каким образом сделать, чтобы ID товара Laravel смотрел по последнему - в ссылке?

Answer 1

Вы можете уточнить в маршруте что в параметре productAlias используется значение по типу 25-rose с помощью Regular Expression Constraints:

Route::get('catalog/{parentCategory}/{childrenCategory}/{productAlias}-{productId}.html', function($parentCategory, $childrenCategory, $productAlias, $productId) {
    echo 'Parent category: '. $parentCategory .
        ' Children category: '.$childrenCategory.
        ' Product alias: '.$productAlias.
        ' Product ID: '.$productId;
})->where('productAlias', '([0-9]+)-([A-Za-z]+)');

В таком случае вывод будет следующим:

Parent category: cat1 
Children category: cat2 
Product alias: 25-rose 
Product ID: 1

Так же можете уточнить и другие значения, к примеру что productId только число, в документации есть примеры как это сделать.

READ ALSO
Что быстрее php5-fpm или php 7?

Что быстрее php5-fpm или php 7?

Не могу разобраться с FPM на PHPКак я понял FPM можно скачать только здесь - https://php-fpm

264
Как найти подстроку в строках listbox'a?

Как найти подстроку в строках listbox'a?

в strText кладется расширение типа "exe", а в листбоксе находится список имен файлов

277
new Date возвращает неверное время и дату

new Date возвращает неверное время и дату

вот что я получаю выполнив код в пол 2 ночи 29 октября 2017 года:

267
Hibernate не видит Entity class

Hibernate не видит Entity class

При связывании с базой данных в Java и использовании getCriteriaBuilder

321