Url segment in ci4 |
Hey guys how do we call itel segment in CI4 as we do $this->uri->segme t() in ci3.
In a controller:
$segments = $this->request->uri->getSegments(); $segment = $this->request->uri->getSegment(1);
Simpler is always better
CodeIgniter 4 User Guide - URI Segments -> Working with URIs
What did you Try? What did you Get? What did you Expect?
Joined CodeIgniter Community 2009. ( Skype: insitfx )
English is not my native language.
Maybe I'm too old to understand, 70, but it's also proof that I try to keep an open mind to the new, which I suppose will come to ease, simplify, etc., but the question asked by @seunex remains unanswered for me. despite the goodwill of @donpwiston and @InsiteFX. In CI3 it was enough to use as below, in a model: $id = $this->uri->segment(3); $query = $this->db ->select('*') ->from('movies') ->where('id', $id) ... Now I have to use two more lines of code otherwise it will give error: $request = \Config\Services::request(); $uri = $request->uri; Of course I'm no expert, I'm just curious, but I hoped the lightness, simplicity and objectivity that always characterized CodeIgniter would be further enhanced. I built a website, local, actually a catalog of my records and movies - about 5,000 records and over 1,500 movies - with detailed information that works perfectly. All my difficulty was with learning PHP that I haven't mastered yet but learned enough to achieve my goals. So I am believing that my knowledge of PHP is quite rudimentary given the difficulties I have been encountering in converting from CI3 to CI4. Of course it wouldn't be necessary since it perfectly meets the goals, but the challenge of the task is healthy for someone my age and I wouldn't want to give up. Thanks for the time and attention.
You can make your own helper function to return segment value.
PHP Code: if (!function_exists('getSegment')) (11-02-2019, 08:03 AM)donpwinston Wrote: In a controller: Thank you. This worked brilliantly. I'm still relatively new to CI4, but the CI documentation does not explain segments well at all. The documentation says: Quote:URI Segments But I cannot get the documentation's explanation working. The closest I got was an 'Out of range' error. ![]()
In your controller you can use :
PHP Code: $data['current_uri'] = $this->request->uri->getSegment(2); And in your view file you can use : PHP Code: <?php $uri = current_url(true); ?> |
Welcome Guest, Not a member yet? Register Sign In |