2016-01-22 3 views
2

Я пытаюсь использовать codeigniter на своем веб-сайте, я не знаю почему, но я не могу удалить пользователя из своей базы данных, я думаю, что сделал ошибку в своем коде, но я не могу ее найти. вы можете взглянуть и помочь мне решить эту проблему. Это мой код контроллера:Codeigniter не может удалить запись

function user_delete($id_user){ 
    $this->load->model('membership_model'); 
    if ($this->membership_model->isAdmin()) 
    { 
     $this->membership_model->deleteUser(); 
     redirect('/site/admins_area'); 
    }else 
     $this->load->view('not_logged_in_view'); 
} 

И это мой код модели:

function deleteUser(){ 
    $this->db->where('id_user', $this->uri->segment(3)); 
    $this->db->delete('user'); 
} 

На мой взгляд код, когда администратор нажмите на удаление будет направлять их на контроллер, как это:

<button type="button" class="btn btn-danger" data-toggle="modal" data-target="#myModal">Delete</button></center> 
<div class="modal fade" id="myModal" role="dialog"> 
<div class="modal-dialog"> 
<div class="modal-content"> 
    <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal">&times;</button> 
     <h4 class="modal-title">Modal Header</h4> 
    </div> 
<div class="modal-body"> 
     <p>Do you want to delete it?</p> 
    </div> 
    <div class="modal-footer"> 
     <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
     <a href="<?php echo base_url();?>site/user_delete" class="btn btn-danger btn-sm" role="button">Delete</a> 
    </div> 
    </div> 

</div> 

Помогите?

+0

где передается $ id_user в вызове user_delete() в вашем контроллере? – msvairam

+0

У меня еще нет вашей точки. Пожалуйста, объясни, что ты подразумеваешь? –

+0

где вы передаете переменную $ id_user этой функции user_delete()? – msvairam

ответ

0

Я думаю, что у вас есть проблемы со связью

<a href="<?php echo base_url();?>site/user_delete" class="btn btn-danger btn-sm" role="button">Delete</a> 

Используйте этот один:

<a href="<?php echo base_url('site/user_delete');?>" class="btn btn-danger btn-sm" role="button">Delete</a> 

Если ошибка сохраняется. Сообщите об ошибке.

+0

Я редактировал, как вы сказали, но он все еще не работает. –

+0

имеет ошибку: использование unifined constant user_delete, принятое как user_delete –

+0

как раз на локальном хосте. вот он: http: // localhost: 8080/cadpro/ –

0

Ваш контроллер

$this->membership_model->deleteUser($id_user); 

от модели

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

все еще не работает для меня. я понятия не имею, почему он не может бежать ??? –

+0

могли бы вы напечатать $ id_user – santosh

+0

не может повторить $ id_user, Отсутствующий аргумент 1 для сайта :: user_delete() , что это ошибка, вы можете помочь –

0

Ваш код работает, это просто, что, возможно, вы Арент связывании маршруты правильно. Вы пытаетесь удалить сегмент URL, в сегменте нет сегмента 3.

Для того, чтобы иметь правильный URL для этого запроса ваш URL должен выглядеть следующим образом:

echo base_url('site/user_delete/'.$user_id); 

Предполагая, что вы уже знаете, как разобрать переменные к мнению, это не должно быть трудно. Также обратите внимание, что вам нужно будет изменить текущий маршрут, который выглядит любит следовать:

$route['site/user_delete'] = "controllername/function"; 

в

$route['site/user_delete/(:num)' = "controllername/function/$1"; 

Это позволит параметры, которые будут передавать по URL. Наряду с этим вам нужно будет изменить свою модель и принять параметр вместо прямого сегмента.

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