Illegal offset type při nevymazaném cache
- bo
- Člen | 16
Ahoj všichni, už se vám někdy stalo, že setdefaults() u formuláře fungovalo jen při vymazané cache? Jakmile se temp/cache zaplní (po jakémkoliv požadavku), už se objeví illegal offset type. Čím to je?
<?php
public function actionEditArticle ($id) {
if (!$id) {
$this->flashMessage('enter id of the mag issue to add an article to' ,'warn');
$this->redirect('view');
}
$oldValues = $this->context->cms->getArticleById($id)->fetch();
if (!$oldValues) { // kontrola existence záznamu
throw new \Nette\BadRequestException;
} else { // kontrola oprávnění
\Nette\Diagnostics\Debugger::bardump($oldValues);
$this["editArticleForm-$id"]->setDefaults($oldValues); // nastavení výchozích hodnot
}
}
?>
Může tu být souvislost s tím, že $id není číslo? Nic mě nenapadá, dík za nakopnutí
- bo
- Člen | 16
<?php
public function getArticleById($id)
{
return $this->database->table('magazine_articles')->where('id', $id);
}
?>
a verze Nette 2.0.5
Divné je, že jinde mi ten stejný mechanismus funguje
<?php
// edit Magazine
public function actionEdit ($id) {
if (!$id) {
$this->flashMessage('enter id of the mag issue to edit' ,'warn');
$this->redirect('view');
}
\Nette\Diagnostics\Debugger::barDump($id);
$oldValues = $this->context->cms->getMagazineById($id)->fetch();
if (!$oldValues) {
throw new \Nette\InvalidArgumentException;
} else {
\Nette\Diagnostics\Debugger::barDump($oldValues);
$this["editMagazineForm-$id"]->setDefaults($oldValues);
}
}
?>
a obsah getMagazineById()
:
<?php
public function getMagazineById($id)
{
return $this->database->table('magazine')->where('id', $id);
}
?>
Nic složitého.. Kdyby to nefungovalo vůbec, je špatně kód, ale když jen při vymazané cache…
- bo
- Člen | 16
Nevím, jak Laděnku nastavit, aby i v development režimu uchovávala
html. Tak jsem ji nastavil do produkčního a objevila se jiná chyba = empty
array, což mi ale nedává smysl, protože se mi celý ten článek
dumpuje.
tady
error ve vývoji
a tady v produkčním.
Omluva za error ve vývoji, je to jenom zip s html složkou se soubory /přes
ctrl-s/