编辑及;Codeigniter中的更新
在执行更新时,我遇到以下错误编辑及;Codeigniter中的更新,codeigniter,edit,Codeigniter,Edit,在执行更新时,我遇到以下错误 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'),
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();?>
用户名:始终跟随。根据CI委员会的惯例,您的类名应该跟在文件名后面。我想你是对的。但您并没有遵循文件名和类名的要求
因此,在您的案例中,文件不应命名为CoursesModel,类也不应命名为CoursesModel,但您应将文件和类命名为CoursesModel。记住ucfirst()
此外,如果加载这些文件(模型和库),对于库,始终使用名称,而对于模型,可以同时使用strtolower()
和ucfirst()
格式化名称
就个人而言,我使用strtolower加载库,而使用ucfirst加载模型,这样我就可以区分那些只是快速查看代码的模型
尝试:
Courses\u m.php(这样我可以加快解析速度)
永远跟随。根据CI委员会的惯例,您的类名应该跟在文件名后面。我想你是对的。但您并没有遵循文件名和类名的要求
因此,在您的案例中,文件不应命名为CoursesModel,类也不应命名为CoursesModel,但您应将文件和类命名为CoursesModel。记住ucfirst()
此外,如果加载这些文件(模型和库),对于库,始终使用名称,而对于模型,可以同时使用strtolower()
和ucfirst()
格式化名称
就个人而言,我使用strtolower加载库,而使用ucfirst加载模型,这样我就可以区分那些只是快速查看代码的模型
尝试:
Courses\u m.php(这样我可以加快解析速度)
方法中的update\u course调用似乎有2个参数,函数本身只取1。那么,coursemodel中不存在解决方案@SemicolonsandDuctTapeupdate\u course($course\u id,$courses)方法的原因是什么:$this->coursemodel->update\u course($courses\u id,$courses);而不仅仅是$this->coursemodel->update\u课程($course\u id);公共函数update\u course($course\u id,$courses){$this->db->where($course\u id',$coursed);$this->db->update($courses',$courses);}方法中的update\u course调用似乎有2个参数,函数本身只取1。那么,解决方案@semiclonsandDuctTapeUpdate\u courses($courses\u id,$courses)是什么呢方法在coursemodel中不存在为什么有这行:$this->coursemodel->update\u course($course\u id,$courses);而不仅仅是$this->coursemodel->update\u课程($course\u id);公共函数更新课程($courseid,$courses){$this->db->where($courseid',$courseid);$this->db->update('courses',$courses);}当然,您可以加载模型作为$this->load->model('courses\m')
并像$this->courses\u m->update\u course($course\u id,$courses)那样使用它代码>。您应该记住的是,具有相同的加载和使用名称非常重要。在这里,我只是向你展示了我如何使用它。我很高兴能帮上忙。嗨@Tpojka我在编辑未定义变量时遇到了一个问题,所以我已经编辑了前面的问题。你能帮我解决一下吗?你不应该这样做。现在,公认的答案不适合这个问题。相反,返回到以前的状态并询问新问题。当然,您可以将模型加载为$this->load->model('courses_m')
并像$this->courses\u m->update\u course($course\u id,$courses)那样使用它代码>。您应该记住的是,具有相同的加载和使用名称非常重要。在这里,我只是向你展示了我如何使用它。我很高兴能帮上忙。嗨@Tpojka我在编辑未定义变量时遇到了一个问题,所以我已经编辑了前面的问题。你能帮我解决一下吗?你不应该这样做。现在,公认的答案不适合这个问题。相反,回到以前的状态并提出新问题。
<?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;
}
}
<?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);
}
}
}