10/10/2018, 11:12
Vấn đề với CodeIgniter cần trao đổi.
Mình có 1 controller là View và function bên trong là index.
Đường dẫn của mình: http://localhost/abc, khi chạy localhost/abc/view sẽ có 3 id dc load từ db. Khi mình muốn xem info của id 1 thì đường dẫn của id 1 sẽ là ...base_url()/view/index/$item[id], và trong controller view:
khi đó site mình sẽ chạy là localhost/abc/view/index/1
vấn đề là mình muốn bỏ chuỗi index trong đường dẫn trên, chỉ còn localhost/abc/view/1 thì phải làm sao ? Nếu đổi dc thành localhost/abc/1 thì càng tốt, xin dc hỏi các pro CI về này.
Ý của mìh tương tự như www.rongbay.com, khi click vào xem 1 tỉnh khác, chẳng hạn Hà Nội thì đường dẫn của nó là rongbay.com/ha-noi
Xin chỉ cách mình làm tương tự.
Trân trọng.
Đường dẫn của mình: http://localhost/abc, khi chạy localhost/abc/view sẽ có 3 id dc load từ db. Khi mình muốn xem info của id 1 thì đường dẫn của id 1 sẽ là ...base_url()/view/index/$item[id], và trong controller view:
<?php
class View extends Controller
{
public function __construct()
{
parent::Controller();
$this->load->helper(array('form', 'url', 'email'));
$this->load->scaffolding("user");
$this->load->library(array('session', 'form_validation', 'email'));
$this->load->Model(array('madmin', 'muser'));
}
public function index()
{
$id = $this->uri->segment(3);
if($id) echo $id;
$this->load->view('user/header', $data);
$this->load->view('user/view_v.php');
$this->load->view('user/footer');
}
}
class View extends Controller
{
public function __construct()
{
parent::Controller();
$this->load->helper(array('form', 'url', 'email'));
$this->load->scaffolding("user");
$this->load->library(array('session', 'form_validation', 'email'));
$this->load->Model(array('madmin', 'muser'));
}
public function index()
{
$id = $this->uri->segment(3);
if($id) echo $id;
$this->load->view('user/header', $data);
$this->load->view('user/view_v.php');
$this->load->view('user/footer');
}
}
vấn đề là mình muốn bỏ chuỗi index trong đường dẫn trên, chỉ còn localhost/abc/view/1 thì phải làm sao ? Nếu đổi dc thành localhost/abc/1 thì càng tốt, xin dc hỏi các pro CI về này.
Ý của mìh tương tự như www.rongbay.com, khi click vào xem 1 tỉnh khác, chẳng hạn Hà Nội thì đường dẫn của nó là rongbay.com/ha-noi
Xin chỉ cách mình làm tương tự.
Trân trọng.
Bài liên quan
với view là tên Class, show là tên phương thức còn 1 và các uri ở phía sau là tham số truyền vào show
nếu như bạn viết http://domain.com/index.php/1 thì 1 ở đây codeigniter sẽ hiểu là Class , như vậy sẽ sai nguyên tắc đặt tên cho Class
Do đó để link có dạng http://domain.com/index.php/1 hoặc http://domain.com/1
thì tại config/routes.php thêm 1 giá trị vào như sau
hy vọng có ích cho bạn
Ngoài ra có thể viết như sau:
Nhìn lại thấy bạn diepnghitinh đã trả lời rồi, chậm chân :d
Mong tất cả thông cảm vì kiến thức còn thô thiển, phương châm muốn biết thì phải hỏi.
[=========> Bổ sung bài viết <=========]
Thank redhill, mình reply trong lúc bạn trả lời. Để mình test tiếp.
Phần Passing URI Segments to your Functions
-> (:any) không chạy là bởi vì đã đụng chạm tới class name.
Nhưng vấn đề phát sinh là phần admin của mình k chạy dc (localhost/abc/admin), khi chạy link này thì nó đều ra trang localhost/abc
Nếu thêm $route['admin']= "admin"; thì mới chạy dc localhost/abc/admin nhưng đến localhost/abc/admin/index/function_name thì nó lại quay về trang localhost/abc.
Nếu thêm
$route['adminindex/function_name2] = "admin/index/function_name2";
bây giờ tại routes.php thêm vào dòng sau: