How to setup a single route with optional argument |
(12-14-2023, 04:02 AM)kenjis Wrote: Out of curiosity, why don't you send a pull request to update the docs? Only because I never remember where the documentation source code is. So I will post it here for reference (for me and others) : https://github.com/codeigniter4/CodeIgni...src/source Regards. (12-14-2023, 03:47 AM)bgeneto Wrote:Quote:With regular expressions, you can also catch a segment containing a forward slash (/), which would usually represent the delimiter between multiple segments. I have re-read the user guide and this description and the current behavior still do not match. It is natural that the string that matches (.+) would be the one param $1. If we define a route like this: PHP Code: $routes->get('products/([a-z]+)/(.+)', 'Products::show/$1/id_$2'); and navigate to the URI products/shirts/123/456, the controller method parameters would be like: Code: $params array (3) It seems to me that the current behavior should be changed. (12-14-2023, 04:47 PM)kenjis Wrote: I have re-read the user guide and this description and the current behavior still do not match. Thank God :-) That's the whole point of this thread. For me the docs description does not match the behavior of (.+) and (:any). (:any) will NOT match all characters from that point to the end of the URI. It will match all characters till the first forward slash(/). (12-14-2023, 04:47 PM)kenjis Wrote: It seems to me that the current behavior should be changed. Totally!
I found the current behavior came from CI3.
Code: $route['login/(.+)'] = 'auth/login/$1'; So it seems difficult to fix it as a bug. First, I sent a PR to improve the documentation. https://github.com/codeigniter4/CodeIgniter4/pull/8340 And I will try to add an option to pass multiple URI segments as one parameter.
(12-15-2023, 05:22 AM)bgeneto Wrote:Thanks! I'm in the midst of routing manually the entire site for an upgrade and I thought I was really messing up. Now I know it isn't me.(12-14-2023, 04:47 PM)kenjis Wrote: I have re-read the user guide and this description and the current behavior still do not match. (12-16-2023, 05:30 PM)kenjis Wrote: And I will try to add an option to pass multiple URI segments as one parameter. https://github.com/codeigniter4/CodeIgniter4/pull/8348 |
Welcome Guest, Not a member yet? Register Sign In |