Bạn có thể sử dụng $this->router->fetch_class()
để có được bộ điều chỉnh dòng và $this->router->fetch_method()
để có được phương pháp này quá nếu cần thiết.
Vì vậy, giống như ví dụ Yii bạn liên kết đến, bạn có thể làm một cái gì đó giống như
$is_home = $this->router->fetch_class() === 'name_of_home_controller' ? true : false;
Hoặc để phù hợp với phương pháp quá
$is_home = ($this->router->fetch_class() === 'name_of_home_controller' && $this->router->fetch_method() === 'name_of_home_method') ? true : false;
Bằng cách này ngay cả khi url trang là http://yoursite.com/ (giả định điều khiển nhà + phương pháp là mặc định), http://yoursite.com/home_controller/, http://yoursite.com/something/that/routes/to/home/controller/, vv, miễn là nó gọi bộ điều khiển đó, nó sẽ đặt $ is_home thành true.
Chỉnh sửa: Ngoài ra, bạn có thể sử dụng ($this->router->fetch_class() === $this->router->default_controller)
nếu bạn không muốn nêu rõ bộ điều khiển chính và được đặt thành bộ điều khiển mặc định.
Cập nhật cho CI v3:
$this->router->fetch_class()
và $this->router->fetch_method()
không được chấp nhận trong CI v3. Sử dụng $this->router->class
và $this->router->method
để thay thế.
Vâng, tôi sẽ đề nghị xác định cho mình những gì "nhà" nghĩa là gì. Đây có phải là URI yêu cầu của '/' hay một số URI khác không. Nếu vậy, sẽ khá đơn giản để kiểm tra URI yêu cầu để xem nó có khớp không. –
không có hành vi phạm tội nhưng Laravel làm cho những điều ngớ ngẩn này dễ dàng hơn .... nó có lẽ có cơ chế bộ định tuyến tốt nhất trong số các khuôn khổ php. ;) – itachi