Я пытаюсь настроить красивые URL в codeigniter, и это не имеет особого смысла для меня.Я хочу, чтобы мои URL-адреса соответствовали следующей структуре:
example.com / admin / view / form / 123
Я могу успешно просматривать данные при посещенииURL выше.При посещении я вижу те же данные;
example.com / admin / view / 123
Обратите внимание, что третий сегмент /form/
отсутствует, но все равно возвращаетданные.Это почти как игнорирование этого - я думал, что CI должен выдать ошибку 404, или мне нужно проверить это вручную?Если да, то как?
Когда я посещаю этот URL;
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();
}
}
Маршруты // перенаправить любые URL-адреса, содержащие число после / form $ route ['admin / view / form / (: num)'] = "admin / view / $ 1";
Структура папок «Мои представления» выглядит следующим образом:
- views
-- admin
- index.php
- view
-- index.php
В идеале я хочу, чтобы мои URL выглядели так и выдавало 404 ошибки там, где их нет.
пример.ru / admin / view / form / 123
example.com / admin / update / form / 123
example.com / admin / delete / form / 123