Kohana 2.3.4 ORM güncelleme soru

1 Cevap php

Ben Kohana 2.3.4 yerleşik ORM kütüphanesi kullanarak bir kaydı güncelleştirmek çalışıyorum. Temelde ben ilk etapta kayıt eklemek için kullandığınız komut dosyasını değiştirerek ediyorum. Benim sorunum kayıt güncellenmiş değil, yeniden içeri almak olduğunu. İşte benim senaryom:

    	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');
				}
              }

Ben Kohana sağlayan belgeler üzerinde baktım, ama ben kayıtlarının güncellenmesi bir örnek bulamıyorum. Ben düzenleme yöntemine geçirilen $ id argümanı zaten var olan bir kayıt seçin ve güncelleştirmek düşündüm, ama sadece yeni bir ekler. Herhangi bir Yardım? teşekkürler!

1 Cevap

It's seems that you've forgotten to append the find() method while creating your $edit_blog object. By the way, there's no need to create another one, you can reuse the blog object you've instanciated in first place (here using a sligthly shorten syntax) :

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');
                            }
          }

Ayrıca model içinde doğrulama kitaplığı kullanmak düşünmelisiniz.