0

我是 codeigniter 的新手,我正在用它开发我的第一个 Web 应用程序,并希望确保我第一次做最佳实践,这样我就不必回去进行更正了。话虽如此,这就是我正在做的事情。

我想在数据库中编辑一条注释,然后在更新记录后重定向到不同的页面。

我的模型编码正确,所以我不担心,但控制器看起来像这样(这可能不正确:

public function edit($id) {
    $this->load->model('Notes_model');

    if (isset($_POST["edit"]))
    {
    $data['data']  = $this->Notes_model->edit($id);
        $url = "/Notes/view/" . $id;
        redirect($url);
    }
    $data['notes'] = $this->Notes_model->viewNotes($id);
    $this->load->view('templates/header');
    $this->load->view('notes/edit', $data);
    $this->load->view('templates/footer');

}

希望这是有道理的,基本上我想要在这里做的是:1.)显示编辑注释页面 2.)如果我通过点击提交来编辑该页面 a.)更新数据库 b.)重定向到不同的页面。

这看起来不错还是我应该做一些更好的改变?

4

2 回答 2

0
<?php
class Home extends CI_Controller
{
    function __construct() {
    parent::__construct();

    $this->m_auth->notLogin();
    $this->load->library('form_validation');
    $this->load->library('ajax_pagination');
    $this->load->library('dateconverter');
    $this->load->helper('template');
    $this->load->helper('check');
    $this->load->model('mymodels/crud_model');
    $this->lang->load('personal',  $this->m_auth->get_language());
    $this->lang->load('global',  $this->m_auth->get_language());        
}

function index()
{
    $this->get_recs(); 
}

function get_recs()
{
    //get for view or first page to be showed
}
/**
 * Register New User
 */
function updateRecords()
{

    $this->form_validation->set_rules('ministery','<span class="req">(Ministry)</span>','trim|required');
    $this->form_validation->set_rules('directorate','<span class="req">(Directorate)</span>','trim|required');
    if($this->form_validation->run()==FALSE)
    {
        header_tpl($this->m_auth->get_language(),'a');
        banner_tpl($this->m_auth->get_language(),'a');
        left_tpl($this->m_auth->get_language(),'a');
        $content = $this->load->view('personal/edit_personal',  $this->POST,true);
        content_tpl($content);
        footer_tpl();
    }
    else
    {
        $form_data = array(

                    'ministry'            => $this->input->post('ministery'),
                    'directorate'         => $this->input->post('directorate'),
                    'job_province'        => $this->input->post('job_province'),
                    'job_district'        => $this->input->post('job_district'),
                    'first_name'          => $this->input->post('fname'),
                    'last_name'           => $this->input->post('lname')

                     );


       if($this->crud_model->update_recs('ast_emp_property',$form_data)==TRUE)
       {
            $this->session->set_flashdata("msg","<span class='m_success'>".$this->lang->line('global_insert_success')."</span>");
            redirect('/home/success_reg/'.$id.'','refresh');
       }
       else
       {
            $this->session->set_flashdata("msg","<span class='m_error'>".$this->lang->line('global_insert_error')."</span>");
            redirect('home','refresh');
       }
    }

}

} ?>

于 2013-06-15T11:00:01.793 回答
0

尽管您的控制器代码很好,但是您必须注意一件事,您应该load modelconstructor控制器中使用,这样您就不必在每个函数中包含模型相同的建议,libraries, helpers这是最佳实践

class myclass extends CI_Controller {
 function __construct() {
 parent::__construct();
 $this->load->model('Notes_model');
 $this->load->helper(form);
 }

 public function myfunction(){

 }
}

MVC这是具有标准的高级代码点火器技术和技巧的入门教程

于 2013-06-11T18:10:50.327 回答