2015-12-15 2 views
0

Я использую codeigniter, и я пытаюсь обновить новостные статьи, я получаю идентификатор с URL-адреса, когда пользователь нажимает кнопку обновления, используя id = $ this-> uri -> сегмент (3); при нажатии кнопки обновления загружается представление под названием update. проблема, с которой я сталкиваюсь, заключается в том, что переменная не передает мой идентификатор модели, потому что когда я отправляю форму, идентификатор больше не сохраняется в переменной $ id. любая помощь будет в основном оценена.переменная теряет идентификатор при отправке формы

контроллер новости

public function update() { 


    $id = $this->uri->segment(3); 
    $this->load->helper('form'); 
    $this->load->library('form_validation'); 

    $data['title'] = 'Update a news item'; 
    $this->load->view('news/update'); 
    $this->form_validation->set_rules('title', 'Title', 'required'); 
    $this->form_validation->set_rules('text', 'Text', 'required'); 

    if ($this->form_validation->run()) 
    { 


    $this->News_model->update($id); 
    redirect('News/index'); 

    } 


} 

новости модель

public function update($id) { 

     $slug = url_title($this->input->post('title'), 'dash', TRUE); 


     $data = array(
     'title' => $this->input->post('title'), 
     'slug' => $slug, 
     'text' => $this->input->post('text') 
    ); 



    $this->db->where('id',$id); 
    $this->db->update('news',$data); 

} 

главная страница новости

<h1><?php echo $title; ?></h1> 
    <p class="lead"><a href="<?php echo site_url('News/create'); ?>">Create Article</a></p>; 
    </div> 


<?php foreach ($news as $news_item): ?> 
<h3><?php echo $news_item['title']; ?></h3> 

    <div class="row"> 
    <div class="col-xs-12 col-sm-6 col-lg-6"> <?php echo $news_item['text']; ?></div> 
    <div class="col-xs-6 col-lg-2"><p><a href="<?php echo site_url('news/'.$news_item['id']); ?>">View article</a></p></div> 
    <div class="col-xs-6 col-lg-2"><p><a href="<?php echo site_url('News/update/'.$news_item['id']); ?>">update</a></p></div> 
    <div class="col-xs-12 col-sm-6 col-lg-2"><p><a href="<?php echo site_url('News/delete/'.$news_item['id']); ?>">Delete article</a></p></div> 
    </div> 

<?php endforeach; ?> 
+0

Я думаю, что вы должны сохранить значение '$ id' в скрытом поле. И когда сообщение формы собирает эту ценность и передает ее модели! – deepakb

ответ

1

Почему вы используете -> URI, чтобы получить сегменты URI? Первый сегмент - это имя контроллера, второе - имя метода, любые другие сегменты, передаются в метод в качестве входных параметров. Поэтому переопределите метод обновления, чтобы включить $ id в качестве входного параметра. И сразу же проверьте, установлен ли $ id. Если это не так, ваш URL-адрес неверен.

+0

Я использую $ id = $ this-> uri-> segment (3); потому что идентификатор элемента новостей берется из URL-адреса и затем сохраняется в переменной $ id, если я передаю идентификатор в метод обновления в обновлении контроллера ($ id), я получаю сообщение об ошибке, что $ id не определено – percy38265

+0

Тогда ваш URL неверен. Или вы возитесь с маршрутами. – slax0r

+0

Он исчезает, когда я отправляю форму – percy38265

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