Router problém Notice Undefined offset
- sniper1101
- Člen | 21
Dobrý deň. Prosím Vás viete mi niekto poradiť prečo mi Ladenka hlási Notice Undefined offset.
186: $vysledok = array_search($id, $xml);
187:
188: return $vysledok;
189: }
190: },
191: Route::FILTER_OUT => function ($id) use ($xml) {
192: if (!is_numeric($id)) {
193: return $id;
194: } else {
195:
196: $vysledok = $xml[$id];
197:
198: return $vysledok;
199: }
200: })));
prikladám routre:
$downloads = $this->download->returnCatIdUrl();
$router[] = new Route('zverejnovanie[/<id>]', array(
'presenter' => 'Downloads',
'action' => 'showCat',
'id' => array(
Route::FILTER_IN => function ($id) use ($downloads) {
if (is_numeric($id)) {
return $id;
} else {
$vysledok = array_search($id, $downloads);
return $vysledok;
}
},
Route::FILTER_OUT => function ($id) use ($downloads) {
if (!is_numeric($id)) {
return $id;
} else {
$vysledok = $downloads[$id];
return $vysledok;
}
})));
$xml = $this->xml->returnCatIdUrl();
$router[] = new Route('zverejnovania[/<id>]', array(
'presenter' => 'Xml',
'action' => 'showCat',
'id' => array(
Route::FILTER_IN => function ($id) use ($xml) {
if (is_numeric($id)) {
return $id;
} else {
$vysledok = array_search($id, $xml);
return $vysledok;
}
},
Route::FILTER_OUT => function ($id) use ($xml) {
if (!is_numeric($id)) {
return $id;
} else {
$vysledok = $xml[$id];
return $vysledok;
}
})));
a taktiež funkcie z xmlRepository:
public function returnCatIdUrl() {
return $this->database->fetchPairs("select cat_id, cat_url FROM xml_cats");
}
a z downloadsRepository:
public function returnCatIdUrl() {
return $this->database->fetchPairs("select cat_id, cat_url FROM downloads_cats");
}
v tabulke downloads_cats mám 4 položky:
ID: 1-Faktúry
ID: 2-Objednávky
ID: 4-Test
ID: 6-Test2
v tabulke xml_cats mám len 2 položky a to:
ID: 1-Faktúry
ID: 2-Objednávky
a keď som na linku:
/zverejnovanie/4
alebo na linku
/zverejnovanie/6
tak mi to hádže uvedenú chybu kdež to pri zadaní linku /zverejnovanie/1 alebo /zverejnovanie/2 funguje všetko tak ako má.
Ďakujem Vám za vaše rady. Prajem pekný deň.
- sniper1101
- Člen | 21
nie nie, stokrát overené:
/** @var Model\DownloadsRepository @inject */
public $download;
/** @var Model\XmlRepository @inject */
public $xml;
$downloads = $this->download->returnCatIdUrl();
$xml = $this->xml->returnCatIdUrl();
- Unlink
- Člen | 298
A chybu ti hlási na url /zverejnovanie/4
na riadku
196: $vysledok = $xml[$id];
Nebude to tým, že sa snažíš vygenerovať nesprávny link?
Pretože
191: Route::FILTER_OUT => function ($id) use ($xml) {
192: if (!is_numeric($id)) {
193: return $id;
194: } else {
195:
196: $vysledok = $xml[$id];
197:
198: return $vysledok;
199: }
200: })));
sa aplikuje pri tvorbe odkazov s cieľom Xml:showCat
Editoval Unlink (2. 6. 2015 21:50)
- sniper1101
- Člen | 21
veď práve to je divné pretože /zverejnovanie/1 a /zverejnovanie/2 fungujú pekne s Downloads:showCat a už pri /zverejnovanie/4 alebo /zverejnovanie/6 hádže akoby sa snažilo generovať Xml:showCat
- sniper1101
- Člen | 21
na stránke /zverejnovanie/2 alebo /zverejnovanie/1 sa má zobraziť s tabuľkou downloads_cats a to isté by malo platiť aj pre stránke /zverejnovanie/4 alebo stránke /zverejnovanie/6 avšak tam hlási chybu akoby stále hľadal v xml_cats kde mám len dve položky… vôbec nerozumiem prečo sa to takto deje…
- Unlink
- Člen | 298
No do tej zverejnovania[/<id>] pre OUT, veď tam ti to
robí, ale stále si myslím že niekde zle generuješ odkaz. Pretože keď
pristúpiš na zverejnovanie tak sa matchne tá prvá routa, a
tým pádom nieje dôvod aby sa volal henten filter, ten sa ale volá, ak niekde
generuješ link Xml:showCat id
- sniper1101
- Člen | 21
Pomohlo pridanie tvojho kódu ale aj tak nerozumiem prečo to vôbec robí, nevidím absolútne žiadnu chybu. Píšeš že zle generujem odkaz? Negeneroval som odkazy, tam je všetko ako má byť avšak keď som chcel zobraziť stránku Downloads:showCat 1 tak fungovala to isté aj pri Downloads:showCat 2 avšak keď som dal Downloads:showCat 4 tak bum chyba… nerozumiem skratka
- Unlink
- Člen | 298
Skus ten router takto
$downloads = $this->download->returnCatIdUrl();
$router[] = new Route('zverejnovanie[/<id>]', array(
'presenter' => 'Downloads',
'action' => 'showCat',
'id' => array(
Route::FILTER_IN => function ($id) use ($downloads) {
if (is_numeric($id)) {
return $id;
} else {
$vysledok = array_search($id, $downloads);
return $vysledok;
}
},
Route::FILTER_OUT => function ($id) use ($downloads) {
if (!is_numeric($id)) {
return $id;
} else {
$vysledok = $downloads[$id];
return $vysledok;
}
})));
$xml = $this->xml->returnCatIdUrl();
$router[] = new Route('zverejnovania[/<id>]', array(
'presenter' => 'Xml',
'action' => 'showCat',
'id' => array(
Route::FILTER_IN => function ($id) use ($xml) {
if (is_numeric($id)) {
return $id;
} else {
$vysledok = array_search($id, $xml);
return $vysledok;
}
},
Route::FILTER_OUT => function ($id) use ($xml) {
if (!is_numeric($id) || !isset($xml[$id])) {
return $id;
} else {
return $xml[$id];
}
})));
- sniper1101
- Člen | 21
Ide to aj takto ako si napísal aj tak ako si vravel pred tým, že to mám vložiť do zverejnovania[/<id>] pre OUT…
ďakujem ale vieš mi to prosím ťa objasniť prečo to pred tým nešlo? Pri všetkých (takých istých) typoch routy ako je táto mi to fungovalo a nikdy to nerobilo problém.
- sniper1101
- Člen | 21
ano ano presne tak, /zverejnovanie/1 na faktúry a /zverejnovanie/2 na objednávky ale akonáhle dáš 4 tak chyba… mne to príde tak, že /zverejnovanie/1 a /zverejnovanie/2 fungujú pretože tieto dve mám aj v tabulke xml_cats… ale nerozumiem prečo sa to tak správa…
- sniper1101
- Člen | 21
Áno funguje to tak, a matche downloads tak ako aj má, ale stále nerozumiem prečo to pred tým nefungovalo..