метод обновления codeigniter не работает

Я новичок в codeigniter и пытаюсь написать функцию обновления для обновления информации в моей базе данных. Я прошел несколько уроков, но по какой-то причине мой код не работает! Любые советы или помощь будет принята с благодарностью. Сейчас я просто тестирую два поля, имя и адрес электронной почты, и у меня появляется пустая страница, когда я перехожу в окно обновлений.

Вот мой метод модели:

function get_by_id($id){
return $this->db->get_where('table',array('id'=>$id));
}

function update($id){
$attributes=array(
'name'=> $this->input->post('Name'),
'email'=> $this->input->post('Email')
);
return $this->db->where('id',$id)
->update('table',$attributes);
}

А вот мой соответствующий код контроллера:

function edit(){
$data['row']=$this->Mymodel->get_by_id($id)->result();
$data['name']= 'Name';
$data['email']='Email';
$this->load->view('updateview', $data);
}

function update($id){

$this->load->model('Mymodel');
$this->Mymodel->update($id);
if($this->input->post()){
redirect('kittens/view/'.$id, 'refresh');
}

И вот мой вид обновления:

<?php echo form_open('kittens/update/')
echo form_hidden('id', $row[0]->id);foreach($attributes as $field_name){
echo '<p>' . $field_name;
echo form_input($field_name, $row[0]->$field_name) . '</p>';
}
echo form_submit('', 'Update');

echo form_close();
?>

Любая помощь будет оценена! Не уверен, какая конкретная часть доставляет мне неприятности!

1

Решение

Используйте следующий шаблон:

контроллер:

public function updateData(){
....
$data = array(
"columnName" => $columnValue
);
$whereValue = $someNumber;
$this->model_name->updateTable($data, $wherevalue);
...
}

Модель:

public function updateTable($data, $whereValue){
$this->db->where('columnName', $whereValue);
$this->db->update('tableName', $data);
}
0

Другие решения

Во-первых, модель «MyModel» не загружается в методе «edit» в контроллере.
Если вы планируете использовать эту конкретную модель в каждой функции вашего контроллера, вы должны загрузить ее в конструктор (чтобы вам не приходилось загружать ее каждый раз).

С помощью$this->input->post('Name') в модели это плохая идея. Вы должны получить эти данные в контроллере, обработать их (если нужно) и затем отправить их методу в модели.
Я не знаю, можете ли вы «связать» методы db следующим образом в codeigniter:

$this->db->where('id',$id)->update('table',$attributes);

попробуй это:

$this->db->where('id',$id);
$this->db->update('table',$attributes);

надеюсь, это поможет

0

  ////////////model for update/////////////
public function update_customer_contacts($where, $data){

return $this->db->update('customer_contacts', $data, $where);

}

///////////////////update customer///////////////////
public function update_customer()
{
$data = array(
'company_name'=>$this->input->post('company_name'),
'address'     =>$this->input->post('address'),
'telephone'   =>$this->input->post('telephone'),
'fax'         =>$this->input->post('fax'),
'email'       =>$this->input->post('email'),
'website'     =>$this->input->post('website'),
);$res= $this->customer_model->update_customer(array('customer_id' => $this->input->post('customer_id')), $data);
;
echo json_encode($this->input->post());

}
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector