tinyMCE chyba při ukládání obsahu do databáze
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Nevinho
- Člen | 77
Zdravím, s natte tak trošku začínám a snažím se zprovoznit tinyMCE v aplikaci, bohužel při pokusu uložit obsah textarea mi laděnka vyhodí hlášku: Trying to get property of non-object
Odkazuje na metodu v modelu a přímo na řádek 3 v mojí funkci save:
public function save(array $data){
if (!isset($data['id']) || $data['id'] == NULL) {
$this->context->database->table('informace')->insert($data);
} else {
$this->context->database->table('informace')->update($data, array('id' => $data['id']));
}
Nevíte někdo kde může být chyba? Za jakoukoli radu předem vřelé díky
Editoval Nevinho (11. 3. 2014 22:48)
- Nevinho
- Člen | 77
Zkusil jsem tvůj nápad, ale nic se nezměnilo. Pořád stejná chyba. V databázi mám tabulku informace (id, article).
Presenter: DataPresenter
<?php
/**
* Description of DataPresenter
*
* @author Jirka
*/
use Nette\Application\UI\Form;
class DataPresenter extends BasePresenter {
protected function startup()
{
parent::startup();
if (!$this->user->isLoggedIn()) {
$this->redirect('Sign:in', array('backlink' => $this->storeRequest()));
}
}
public function renderFirmy()
{
}
protected function createComponentFinanceGrid()
{
return new FinanceGrid($this->context->database->table("financni_informace"));
}
protected function createComponentVyrobniGrid()
{
return new VyrobniGrid($this->context->database->table("vyrobni_informace"));
}
protected function createComponentOsobyGrid()
{
return new OsobyGrid($this->context->database->table("osoby"));
}
/**
* Creates TestWysiwyg component.
*
* @return Nette\Application\UI\Form
*/
protected function createComponentTestWysiwyg() {
$form = new Form();
// zavěšení handleru na událost onSuccess
$form->onSuccess[] = callback($this, 'testWysiwyg_onSuccess');
$form->addTextArea('text', '')
->getControlPrototype()->class('mceEditor');
$form->getElementPrototype()->onsubmit('tinyMCE.triggerSave()');
return $form;
}
/**
* Handles TestWysiwyg 'onSuccess' event.
* Saves input text data.
*
* @param Nette\Application\UI\Form $form
* @return void
*/
public function testWysiwyg_onSuccess(Form $form)
{
$values = $form->getValues();
// metoda modelu, která se stará o ukládání záznamů, konkrétní implementace je už na tobě
$this->context->saveModel->save(array('text' => $values['text']));
$this->flashMessage('Text uložen ');
$this->redirect('this');
}
}
Nevím už kde může být chyba.. Kdyby byla nějaká rada, byl bych velice vděčný..
- David Matějka
- Moderator | 6445
v tve modelove tride mas dostupne pouze ty sluzby, ktere si injectnes ⇒
injectni si Nette\Database\Context
viz cheatsheet
o di