2016-05-15 70 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();里面的控制器。