Nie mogę połapać się gdzie popełniłem błąd...
public function action_add($type) { $this->action_edit($type); } /** * Edycja ogłoszenia * @param int $id - Id ogłoszenia */ public function action_edit($type, $id = NULL) { $advertisement = new Model_Advertisement($id, $type); $form = new View('admin/advertisements/edit'); $form->type = $type; $form->advertisement = $advertisement; if($_POST) { $advertisement->loaded() or $advertisement->clear(); // Dodajemy walidację kategorii $post = $advertisement->validate() ->rule('category_id', 'not_empty'); $post->exchangeArray($_POST); if($post->check()) { // Skąd to się wzieło ? $advertisement->values($post); if(!$advertisement->loaded()) { // Kalkulujemy date wygasniecia ogloszenia } $advertisement->save(); if($advertisement->saved()) { // Usuwamy stare relacje $categories = $advertisement->categories ->find_all(); foreach($categories as $category) $advertisement->remove('categories', $category); // Łączymy relacją z kategorią $advertisement->add('categories', ORM::factory('Advertisement_Category', $_POST['category_id'])); $advertisement->save(); } } else { $form->errors = $post->errors('admin/advertisement'); } }
A tutaj znajdziecie część kodu odpowiadającego za wyświetlenie formularza: http://www.wklej.eu/index.php?id=1eb5b95a4a