Необязательный параметр CodeIgniter

Я пытаюсь использовать маршрутизацию в CI для создания формы регистрации

signup перенаправляется на user/signup

Но моя функция регистрации может содержать параметр: function signup($type = 1)

Как я могу сделать это необязательным через маршрутизацию? Я пробовал $route['signup/?(:num)'] = 'user/signup/$1';, но при переходе на /signup я получаю 404, работает только /signup/1/.

Ответ 1

Самый яркий способ выразить это, вероятно, заключался бы в объявлении обоих маршрутов:

$route['signup'] = "user/signup";
$route['signup/(:num)'] = "user/signup/$1";

Ответ 2

Для всех, кто читает это со временем, я считаю, что ответ должен быть $route['signup/?(:num)?'], что делает число необязательным. У меня были похожие проблемы на что-то еще.

Ответ 3

Проблема с ответом @Ukuser32 заключается в том, что он позволяет принимать URI, такие как signup69, что в этом случае может быть безобидным, но в общем случае нежелательно. Просто поместите косую черту с захваченным: num

$route['signup(/:num)?'] = "user/signup$1"

И обратите внимание, что если у вас есть несколько необязательных сегментов, вам нужно будет их вложить....