Autor Zpráva
Awer-Graphic
Profil
Dobrý den,
vytvořil jsem si navigaci podle quickstartu, ale na řádků 12 (

namespace Tables;
4: use Nette;
5:
6: class sections extends Table
7: {
8: protected $tableName = 'sections';
9:
10: public function tasksOf(Nette\Database\Table\ActiveRow $sections)
11: {
12: return $sections->related('articles')->order('id');
13: }
14: }
) to hází chybu: array_keys() expects parameter 1 to be array, null given. Nevíte co to znamená?

Edit: Omlouvám se za špatné fórum.
panther
Profil
Awer-Graphic:
na tomto radku urcite ne, hovori se o funkci array_keys, kterou tam nikde nevidim.

Nevíte co to znamená?
prelozit si jednoduchou chybovou hlasku, pripadne ji hodit do vyhledavace nebo PHP manualu snad zvladnes, ne?
Awer-Graphic
Profil
panther:
Array keys je v jiném souboru. :
foreach (array_keys($this->structure['hasMany']) as $table) {

Přeložit umím, také vím co to znamená, ale nevím proč to vyhazuje, chápeš?
panther
Profil
Awer-Graphic:
ale nevím proč to vyhazuje
protoze te funkci nepredavas pole, ale (asi) string. Ten zadne klice nema.
Awer-Graphic
Profil
panther:
V related má být název tabulky, tak nevím...
Nox
Profil
Awer-Graphic:
Píše, že to má být array, ale je null ... tzn. ve struktuře je ta hodnota prázdná ... dump($this->structure), nějak špatně naplněné asi
shaggy
Profil
panther:
Nemôžem si pomôcť, ale tentokrát mám pocit, že nebude chyba v Awer-Graphic.
Potrebujem práve niečo urobiť v nette (preto som si ho stiahol a zoznamujem sa s nim), skúšal som jednoduchý príklad podľa ich dokumentácie, stiahol som z git-u súbory ku quickstart-u a hádže to rovnakú chybu (resp. vo verzii 2.0.6 sa chyba s array_keys zmenila za uksort).

Ak sa však pri volaní metódy related doplní aj stĺpec, cez ktorý sú tabuľky previazané, tak všetko funguje správne. Nefunkčný príklad z ich quickstartu:
return $list->related('task')->order('created');
funkčná úprava:
return $list->related('task', 'list_id')->order('created');

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0