まず、CodeIgniter と MVC は初めてです。
CMS を作成していますが、2 つのアプリケーション (フロント エンド/CMS) を使用するか、管理者をコントローラーとして作成するか、どのルートを使用するかを決定できません。私は 1 つのアプリケーションを選択し、コントローラーを介して管理者を作成しました。
このようにすると、フォーム検証で問題が発生しました。検証されない場合、フォームをロードできず、リダイレクトする必要があります。つまり、検証されていないフィールドを再入力しません。3 番目の URI セグメントの変数を使用して、新しいレコードを挿入するためのフォーム、レコードを編集するためのデータが入力されたフォーム、またはすべてのレコードの表形式のリストを表示するかどうかを決定します。
フォームは /admin/videos/save に投稿します
function videos()
{
if (!$this->tank_auth->is_logged_in()) {
redirect('/auth/login/');
} else {
$this->load->model('videos_model');
$data['section'] = "Videos";
$data['area'] = "Videos";
$data['mode'] = $this->uri->segment(3, 'create');
$data['user_id'] = $this->tank_auth->get_user_id();
$data['username'] = $this->tank_auth->get_username();
if ($data['mode'] == 'edit') {
$data['ID'] = $this->uri->segment(4);
$data['videos'] = $this->videos_model->get_videos($data['ID']);
} elseif ($data['mode'] == 'list') {
if ($this->uri->segment(4)) {
$data['filter'] = $this->uri->segment(4);
$data['videos'] = $this->videos_model->get_filtered_videos($data['filter']);
} else {
$data['videos'] = $this->videos_model->get_filtered_videos();
}
} elseif ($data['mode'] == 'save') {
$this->load->helper('form');
$this->load->library('form_validation');
$this->form_validation->set_rules('videoTitle', 'Title', 'required');
$this->form_validation->set_rules('Code', 'Youtube Code', 'required');
if ($this->form_validation->run() === FALSE) {
redirect('/admin/videos');
} else {
$this->videos_model->set_videos();
redirect('/admin/videos/list');
}
}
if ($data['mode'] != "create" && empty($data['videos'])) {
show_404();
}
$this->load->view('admin/templates/head', $data);
$this->load->view('admin/templates/body_navbar', $data);
$this->load->view('admin/videos', $data);
$this->load->view('admin/templates/footer', $data);
}
}
私はこれについて間違った方法で設定していますか? 2 つのアプリケーション フォルダーを使用するか、すべてを編集/挿入/表示するために 3 つのコントローラーを使用する必要があります。または、現在のセットアップに対する解決策はありますか?