Необходимо добиться следующего результата:
/yarn/
/yarn/alize/
/yarn/alize/lana-gold
/yarn/
/yarn/{manufacturer}/
/yarn/{manufacturer}/{collection}
Сделал так:
Controller
class YarnController extends Controller
{
public function index()
{
return 'index()';
}
public function show($manufacturer, $collection = null)
{
if ($collection) {
$test = $manufacturer .', '. $collection;
} else {
$test = $manufacturer;
}
return $test;
}
}
Route
Route::group(['prefix' => 'yarn'], function() {
Route::get('/', [YarnController::class, 'index']);
Route::get('/{manufacturer}/{collection?}', [YarnController::class, 'show']);
});
Боюсь, что в будущем обязательно столкнуть с какими-либо подводными камнями. Несколько раз начинал делать и через N дней приходилось все переделывать из-за неправильного старта. Надеюсь, старшие коллеги помогут.
Если в будущем я захочу вывести пряжу не только по производителям, но еще и по странам, то определенно столкнусь с трудностями.
// /yarn/{country}
Я посмотрел разные работающие сайты и каким то способом у них данная логика реализована, но как именно я не понимаю.