dibi fetchAll – přistup k objektu
- masterr
- Začátečník | 141
Tohle chování se mi zdá dost divné:
$article = $this->article->getArticleById($id);
dd($article[0]);
mi vrátí toto:
DibiRow(11) ▼ {
id => 2
title => "wqefd" (5)
title_seo => ""
keywords => "esda" (4)
desc => ""
body => ""
category => 0
parent_id => 0
gallery_id => 0
status => ""
author => 0
}
což je naprosto v pořádku, akorát nechápu proč mi laděnka vyhodí
Notice
Undefined offset: 0
Btw. Chci pomocí dibi vrátit pouze jeden dibi object a ne array a v tom
jeden dibi object, dá se to nějak udělat? (zdá se mi, že ne). Jak k tomu
můžu tedy přistupovat a proč to hází ten offset?
když tam index [0] je.
array(1) ▼ [
0 => DibiRow(11) ►
]
Editoval masterr (21. 7. 2013 10:03)
- masterr
- Začátečník | 141
JJ, ale o to až tak nejde.
Dibi vrací záznamy jako objekty DibiRow. Ty mají tu vlastnost, že k hodnotám atributů lze přistupovat dvěma způsoby – buď jako k hodnotám objektů anebo jako k asociativnímu poli.
takže by mělo jít jak $article->id tak i $article[‚id‘], ale $article->id nefunguje, proč?
DibiRow(11) ▼ {
id => 2
title => "wqefd" (5)
title_seo => ""
keywords => "esda" (4)
desc => ""
body => ""
category => 0
parent_id => 0
gallery_id => 0
status => ""
author => 0
}
**Trying to get property of non-object **
Přitom to je objekt a dump mi tu hodnotu i vyhodí, ale zároven to vyhodí i ten error.
Edit:
tak už vím proč to nešlo
protože se to volalo na ,,editForm"
DibiRow(11) ►
"editForm" (8)
akorát nechápu co tam dělá ten editForm :(, jak to dám pryč?
public function actionEdit($id)
{
$this->createComponentEditForm($this->article->getArticleById($id));
}
public function createComponentEditForm($art)
{
dd($art);
Editoval masterr (21. 7. 2013 14:25)
- Etch
- Člen | 403
Proč ten form neděláš klasicky:
protected function createComponentEditForm(){
$form = new EditForm; // Jen ukázka ty si tam dej formulář tak jak potřebuješ
return $form;
}
a hodnoty mu nenastavíš v action
public function actionEditForm(){
$this['editForm']->setDefaults($this->article->getArticleById($id));
}
Editoval Etch (21. 7. 2013 15:00)
- masterr
- Začátečník | 141
Dost dobrý, akorát teda nevím jak mám volat tu akci té componenty,
ikdyž ta se asi volá sama když volám komponentu.
Mám to ted v akci presenteru
public function actionEdit($id){
$this['editForm']->setDefaults($this->article->getArticleById($id));
}
protected function createComponentEditForm()
{
asi to tak nechám, když v tý akci presenteru volám $this->createComponentEditForm();, tak mi to nenaplní.