2016-05-15 67 views
0

雖然做更新我收到以下錯誤修改和更新在笨

Severity: Notice Message: Undefined variable: user 

這是我的控制器:

public function update_user_id($user_id) { 

    if($this->input->post('submit')){ 
    $courses = array(

    'user_name'=>$this->input->post('user_name'), 
    'email'=>$this->input->post('email') 
    ); 
    $this->users_model->update_user($user_id,$users); 
    $base_url=base_url(); 
    redirect("$base_url"."Dashboard/update_user_id/$user_id"); 
    } 
    $result['user']=$this->users_model->user_id($user_id); 
    $this->load->view('edit_user',$result); 
    } 

這是我的看法

<?php echo form_open(base_url().'Admin/update_user_id/'.$user[0]->user_id);?> 
User Name: <input type="text" name="user_name" value=" <?php echo $user[0]->user_name; ?>"> 
Email: <input type="text" name="email" value=" <?php echo $user[0]->user_name; ?>"> 
<?php echo form_close();?> 

不知道代碼有什麼問題

+0

它看起來像你的update_course調用方法有2個參數,函數本身只需要1. –

+0

那麼,什麼解決方案@SemicolonsandDuctTape – ohmygood

+1

update_course($ course_id,$ courses)方法不存在於Coursesmodel –

回答

2

始終關注documentation。按照CI理事會的慣例,你的班級名稱應該遵循文件名。我想你有這個權利。但你沒有按照ucfirst()文件和類名的需求。

你的情況文件

所以不應該被命名爲CoursesModel既不使用類應命名爲CoursesModel,但你應該命名該文件並類Coursesmodel。請記住ucfirst()規則(關於CI3 +)以命名所有類別的控制器,模型或庫。

此外,如果您加載這些文件(模型和庫),對於庫,始終使用strtolower()名稱,而對於型號,可以同時使用strtolower()ucfirst()格式名稱。

個人意見,我用它來加載帶有strtolower的庫,同時使用ucfirst名稱加載模型,這樣我就可以快速查看代碼。

嘗試:

Courses_m.php(這樣,我加快了解析一點點)

<?php defined('BASEPATH') or exit('Not your cup of tea.'); 

class Courses_m extends CI_Model 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function update_course($course_id, $courses) 
    { 
     // your DB task --should return something 
     return true ?: false; 
    } 
} 

並在控制器:

Courses_c.php(在APPPATH . 'config/routes.php'你可以設置任何你喜歡的路線名稱)

<?php defined('BASEPATH') or exit('Not your cup of tea.'); 

class Courses_c extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 

     $this->load->helper('url'); 
     $this->load->library('form_validation');//just an library loading example 
     $this->load->model('Courses_m');//notice first capital here 
    } 

    public function update_course_id($course_id) 
    { 
     if($this->input->post('submit')) 
     { 
      $courses = array(
       'course_name'=>$this->input->post('course_name'), 
       'no_of_hours'=>$this->input->post('no_of_hours') 
      ); 
      // pay attention on capital first when you calling a model method 
      // need to be the same as in constructor where file is loaded 
      $this->Courses_m->update_course($course_id,$courses); 

      // you can use this way 
      redirect(base_url("Dashboard/update_course_id/$course_id")); 
     } 
     // use else block to avoid unwanted behavior 
     else 
     { 
      $result['course']=$this->Courses_m->course_id($course_id); 
      $this->load->view('edit_course',$result); 
     } 
    } 
} 
+0

謝謝Tpojka會試着讓你知道 – ohmygood

+0

當然,你可以加載模型爲'$ this-> load-> model('courses_m');'並像'$ this一樣使用它 - > courses_m-> update_course($ COURSE_ID,$課程);'。事情你應該記住的是,具有相同的加載和使用名稱是非常重要的。在這裏,我向你展示了我是如何使用它的。我很高興能夠提供幫助。 – Tpojka

+0

最終工作非常感謝 – ohmygood

0

也許你沒有加載模型,或者你給我們錯誤的代碼。我想是的,因爲我看不到CoursesModel::update_course();裏面的控制器。