我试图在codeigniter中配置漂亮的url,这对我来说没有多大意义。我希望我的网址遵循以下结构;
example.com/admin/view/form/123网站
当我访问上面的url时,我可以成功地查看数据。我访问时也看到同样的数据;
example.com/admin/view/123网址
注意第三段
/form/
丢失,但仍返回数据。这就像它忽略了这一点-我认为ci应该抛出404错误,还是需要手动检查?如果是这样,怎么办?
当我访问这个网址时;
example.com/admin/view网站
我看到以下错误;
An uncaught Exception was encountered
Type: ArgumentCountError
Message: Too few arguments to function Admin::view(), 0 passed
我的代码可以在下面看到;
控制器
defined('BASEPATH') OR exit('No direct script access allowed');
class Admin extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->database();
$this->load->model('Admin_model');
}
public function index()
{
$this->load->view('template/header');
$data = array(
'title' => 'Admin Page'
);
$this->load->view('admin/index', $data);
$this->load->view('template/footer');
}
public function view($form_submission_id)
{
$this->load->view('template/header');
$data = array(
'title' => 'Form View Page',
'record' => $this->Admin_model->getSubmissionById($form_submission_id)
);
$this->load->view('admin/view/index', $data);
$this->load->view('template/footer');
}
}
模型
class Admin_model extends CI_Model {
public function getSubmissionById($form_submission_id) {
$this->db->select('*');
$this->db->from('submissions');
$this->db->where('id', $form_submission_id);
$query = $this->db->get();
return $query->row();
}
}
路线
//redirect任何在/form之后包含数字的url
$route['admin/view/form/(:num)']=“管理/查看/$1”;
我的视图文件夹结构如下所示;
- views
-- admin
- index.php
- view
-- index.php
理想情况下,我希望我的url看起来像这样,并在错误不存在的地方抛出404个错误。
example.com/admin/view/form/123网站
example.com/admin/update/form/123
example.com/admin/delete/form/123网站