2015-02-06 4 views
0

следовал учебник https://www.youtube.com/watch?v=7RFVKKzcHFY я смотрел до 3:50 и, кажется, его не работает ...CodeIgniter метод модель не работает

Примечание: У меня есть маршрутизация работает нормально, и я назвал библиотеки в $ автозагрузку и дб работает нормально только что ...

контроллеры/admin.php

<?php 
class Admin extends CI_Controller { 

    public function index() { 

     $this->load->view('admin'); 
    } 

    public function create_user() { 

     $this->load->model('user_model'); 
     echo $this->user_model->create($_POST['email'], $_POST['password']); 
    } 

    public function delete_user($user_id) { 

     $this->load->model('user_model'); 
     $this->user_model->delete($user_id); 
    } 
} 

модели/user_model.php

<?php 
class User_model extends CI_Model { 

    public function __construct() { 

     parent::__construct(); 
    } 

    public function create($email, $password) { 

     return $this->db->insert('user', [ 
      'email' => $email, 
      'password' => $password 
     ]); 
    } 

    public function delete($user_id) { 

     $this->db->where(['user_id' => $user_id]); 
     return $this->db->delete('user'); 
    } 
} 

просмотров/admin.php

Admin 

<form action="<?=site_url('admin/create_user')?>" method="post"> 
    Email: <input type="email" name="email" /><br /> 
    Password: <input type="password" name="password" /><br /> 
    <input type="submit" /> 
</form> 

помощь ...

+0

помощь в чем? в чем дело? какая из этих функций работает для вас? а какие нет? – Alex

+0

Итак, когда я ввожу данные и отправляю в форму, он возвращает пустую страницу ... – ravextreme

+0

пусто, но не 404? – Alex

ответ

0

В вашей модели у вас есть [] скобки в вкладыше, вы не можете этого сделать. Также при вставке вам не требуется возврат.

И в вашей форме действий попробуйте заменить сайт URL с perferd base_url()

Убедитесь, что URL и формы хелперы автоматически загружены. пожалуйста, прочтите руководство пользователя http://www.codeigniter.com/userguide3/index.html

эхо $this->user_model->create($_POST['email'], $_POST['password']); не хорошую попытку вара демпинга поста, а также смотреть в проверки формы CodeIgniter. Я думаю, потому что вы не используете проверку формы в контроллере.

Codeigniter 3 выходит на github BCIT. https://github.com/bcit-ci/CodeIgniter

<?php 

class User_model extends CI_Model { 

public function __construct() { 

    parent::__construct(); 
} 

public function create($email, $password) { 

    $email = $this->input->post('email'); 
    $password = $this->input->post('password'); 

    $data = array(
     'email' => $email 
     'password' => $password 
    ); 

    $this->db->insert_id(); 
    $this->db->insert('user', $data); 

} 

public function delete($user_id) { 
    $this->db->where('user_id', $user_id); 
    $this->db->delete('user'); 
} 
} 
+0

nice. кажется намного чище! – ravextreme

+0

Когда вы используете codeigniter, у вас очень простые способы делать вещи, вы также можете назвать сегменты uri как идентификатор пользователя, например, если идентификатор пользователя 'http: // www.example.com/user/update/1' будет 1, поэтому сегмент' $ this-> uri-> segment (3) ', вы должны установить маршруты, хотя для этого нужно работать. – user4419336

+0

спасибо! будет продолжать работать над этим! – ravextreme

0

Так что если вы видите пустую страницу, попробуйте просто изменить здесь:

public function create($email, $password) { 

    if ($this->db->insert('user', [ 
     'email' => $email, 
     'password' => $password 
    ])) { 
     return 'User successfully inserted!'; 
    } else { 
     return "Can't insert user: email=".$email."!"; 
    } 
} 
+0

Я удалил класс User_model и заменил его простым «эхом» "контрольная работа";' кажется, страница загружается, но мой метод передачи данных в db не работает ... – ravextreme

+0

просто попробовал, еще пустую страницу ..извините, hehe – ravextreme

+0

, поэтому нет сообщений об ошибках при вызове модели? и никаких выходов? как это возможно? – Alex

0

спасибо за то, чтобы помочь мне! Я понял, что это устаревшая версия PHP ..., которая не поддерживает [] вместо array() обновление работает нормально. Спасибо.

Смежные вопросы