2015-02-27 4 views
0

Я новичок с CI, и я использую CI v.2.2.1, я хочу отправить данные с моего контроллера на модель, но у меня есть некоторые проблемы здесь. Ошибка говорит, что моя модель undefined property. вот мой код:как отправить данные с контроллера на модель с помощью CodeIgniter

Контроллер: users.php

public function postUser(){ 
    $username = $this->input->post('username'); 
    $password = $this->input->post('password'); 
    $email = $this->input->post('email'); 
    $phone = $this->input->post('phone'); 
    $address = $this->input->post('address'); 
    $level = $this->input->post('level'); 
    $status = $this->input->post('status'); 
    $this->load->model('model_crud'); 
    $query = $this->model_crud->insert('Users',$_POST); 
    echo "$query"; 
} 

Модель: model_crud.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

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

    public function insert($table,$data){ 
     $query = $this->db->insert($table,$data); 
     return $query; 
    } 
} 

есть любой конфигурации использовать модель или мой код не так? Может ли кто-нибудь мне помочь? Thx

ответ

1

первая вещь, вы не предоставляет достаточно информации об ошибке. Является ли модель загруженной в любом месте/во всяком случае? От контроллера вы загрузите вашу модель так:

$this->load->model('model_crud'); 

Или вы можете предварительно загрузить его, изменяя файл конфигурации autolad.php

в postUser() - вы получаете ваши почтовые данные, но дон На самом деле это не так. Вместо этого вы передаете весь глобальный $ _POST, который может быть грязным и небезопасным. Я рекомендую использовать фильтрацию XSS CodeIgniter, когда формирование массива данных из POST:

$data = array (
    'username' => $this->input->post('username', TRUE); //TRUE identifies you're passing your data through XSS filter, 
//all other elements 
); 

наконец:

$query = $this->model_crud->insert('Users',$data); 
0

Вы можете сделать это, отправив массив в модель с именем столбцы таблицы в качестве ключа:

Контроллер:

$data = array(
     'username' => $this->input->post('username') , 
     'password ' => $this->input->post('password') , 
     ... 
    ); 
// 'TABLE COLUMN NAME' => "VALUE" 

$query = $this->model_crud->insert('Users',$data); 
echo "$query"; 
Смежные вопросы