Codeigniter обновление записей - PullRequest
4 голосов
/ 05 января 2011

У меня возникли проблемы с обновлением записей с помощью инфраструктуры Codeigniter. Я использую шаблон MVC и активные записи.

Код для обновления профилей пользователей.

В моей модели Profile_model У меня есть функция для обновления ...

function profile_update() 
    {
        $this->db->where('user_id', 2);
        $this->db->update('user_profiles', $data);              
    }

Контроллер Profile_crud должен извлечь данные из формы и отправить данные в модель.

function update() 
    {
        $data = array (
            'country' => $this->input->post('country'),
            'website' => $this->input->post('website')         
        );

        $this->load->model('Profile_model');
        $this->Profile_model->profile_update($data);
    }

и форма, на мой взгляд profile.php При отправке запускает функцию update в моем контроллере.

Обновление

<?php echo form_open('profile_crud/update'); ?>

<p>
<label for="country">Country</label>
<input type="text" name="country" id="country" />
</p>
<p>
<label for="website">Website</label>
<input type="text" name="website" id="website" />
</p>

<p><input type="submit" value="Save" /></p>

<?php echo form_close(); ?>

Когда я отправляю форму, я получаю 3 типа ошибок.

Обнаружена ошибка PHP

Серьезность: Уведомление

Сообщение: неопределенная переменная: данные

Имя файла: models / profile_model.php

Номер строки: 27

строка 27 - $this->db->update('user_profiles', $data);

Произошла ошибка PHP

Серьезность: Предупреждение

Сообщение: невозможно изменить заголовок. информация - заголовки уже отправлены (вывод начался в /home1/requestg/public_html/housedwork/system/libraries/Exceptions.php:166)

Имя файла: codeigniter / Common.php

Номер строки: 356

и

Произошла ошибка базы данных

Вы должны использовать метод "set" для обновить запись.

Я не уверен, что я делаю неправильно .. Может кто-нибудь помочь?

Ответы [ 3 ]

15 голосов
/ 05 января 2011

Для функции profile_update вы указываете аргумент $data:

$this->Profile_model->profile_update($data);

Но в функции модели вы не указали одну:

function profile_update() 
{
    $this->db->where('user_id', 2);
    $this->db->update('user_profiles', $data);              
}

Должно быть:

function profile_update($data) 
{
    $this->db->where('user_id', 2);
    $this->db->update('user_profiles', $data);              
}
3 голосов
/ 17 марта 2015

Ваша модель Profile_model не получила никаких параметров.

function profile_update($data) {
    return $this->db
       ->where('user_id', 2)
       ->update('user_profiles', $data);
}
3 голосов
/ 05 января 2011

В вашем profile_update () отсутствует параметр $ data

function profile_update($data) 
{
    $this->db->where('user_id', 2);
    $this->db->update('user_profiles', $data);              
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...