Přechod na Nette 2.1 a update db (kolize s ActiveRow is read-only)
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- jik
- Člen | 149
Zdravím,
v Nette 2.0 jsem si zavedl takovýto postup pro update:
model
public function updateLv ($id, $o_lv, $editor) {
return $this->find($id)->update(array(
'cislo' =>$o_lv->cislo,
...
}
presenter
public function actionEdit($id) {
$this->o_lv = $this->context->lv->getLv($id);
...
$this["lvForm"]->setDefaults(array(...));
}
protected function createComponentLvForm() {
...
$form->onSuccess[] = $this->lvFormSubmitted;
return $form;
}
public function lvFormSubmitted(Form $form) {
$this->o_lv->cislo = $form->values->cislo; //zmenene hodnoty
...
$this->context->lv->updateLv($o_lv->id, $o_lv, $this->uid);
}
Tento způsob je u 2.1 nepoužitelný skrz r/o ActiveRow a tak hledám nějakou univerzální jednoduchou náhradu (předávání hromady argumentů modelům, přepis hromady modelů). Zatím mě napadlo jedině z dat vrácených formulářem vytvořit nový objekt a ten předávat jako argument update. Nevíte o nějakém lepším řešení?
Editoval jik (9. 2. 2014 10:05)