2009-12-17 1 views
1

Я пытаюсь обновить запись, используя библиотеку ORM, встроенную в Kohana 2.3.4. Я в основном изменяю сценарий, который я использую, чтобы вставить запись в первую очередь. Моя проблема заключается в том, что запись снова вставлена, а не обновляется. Вот мой сценарий:Kohana 2.3.4 Вопрос об обновлении ОРМ

 public function edit($id) 
     { 
      // Find the selected blog entry 
      $blog = ORM::factory('article')->where('id',$id)->find(); 

      //other code to view data from $blog 

      // Write the changes to the db for this id 
      $title = $this->input->post('title'); 
      $content = $this->input->post('text_content'); 

      if(!empty($title) && !empty($content)) 
       { 

      $edit_blog = ORM::factory('article')->where('id',$id); 
      $edit_blog->title = $title; 
      $edit_blog->content = $content; 

      if($edit_blog->save()) 
       { 
        url::redirect('admin/dashboard/blog/manage'); 
       } 
       } 

Я просмотрел документацию Kohana предоставляет, но я не могу найти пример обновляемых записей. Я думал, что аргумент $ id, переданный в метод редактирования, будет выбирать уже существующую запись и обновлять ее, но она просто вставляет новую. Любая помощь? благодаря!

ответ

1

Похоже, вы забыли добавить метод find() при создании объекта $ edit_blog. Кстати, нет необходимости создавать еще один, вы можете использовать объект блога вы инстанциирован на первом месте (здесь используя sligthly укоротить синтаксис):

public function edit($id) 
      { 
        // Find the selected blog entry 
        $blog = new Article_Model($id); 

     //other code to view data from $blog 

        // Write the changes to the db for this id 
        $title = $this->input->post('title'); 
        $content = $this->input->post('text_content'); 

        if(!empty($title) && !empty($content)) 
         { 

        $blog->title = $title; 
        $blog->content = $content; 

        if($blog->save()) 
          { 
            url::redirect('admin/dashboard/blog/manage'); 
          } 
      } 

Также следует рассмотреть возможность использования валидации библиотеки внутри вашей модели.

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

  • Нет связанных вопросов^_^