Složený primární klíč a Notice: Array to string conversion

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
iskejp
Člen | 41
+
0
-

Zdravím, vím, že se to tady řešilo, ale nic z toho mi nepomohlo.

Podařilo se mi rozběhnout NDB zápis pro JOIN v databázi, ale bohužel pouze pokud má tabulka 1 primární klíč. Jakmile vytvořím dva, dojde na Notice: Array to string conversion.

Chyba je dle Laděnky (nebo Tracy? :)) ve skriptu SqlBuilder.php:445. Ve výpisu je vidět, že se načtou pěkně klíče do pole, ale zřejmě se již pole nedostane z dotazu.

Dotaz používám tento:

<?php
return $this->findSelectWhereOrder('article.*, article.title_'.$lang.' AS title, article.perex_'.$lang.' AS perex, article.order, menu.alias_'.$lang.' AS menu', array('article_menu.menu_id' => $menuId, 'article.user_id' => $user), 'article.state >='.$state, 'article.order ASC');
?>

Pokud chápu správně logiku věci, je problém zakopán někde kolem array(‚article_menu.menu_id‘ ⇒ $menuId, ‚article.user_id‘ ⇒ $user) v části WHERE.

Jde mi o to spojit data z tabulky article přes article_menu a menu a k tomu ještě přidat možnost vypsat user->name. V tabulce article je cizí klíč user_id, který je zároveň i primárním, jelikož si myslím, že tak by se to mohlo spojit do tabulky user. Nebo se pletu?

Díky za pomoc a odpověď.

Editoval iskejp (23. 2. 2014 3:02)

iskejp
Člen | 41
+
0
-

Tak nakonec se povedlo:

<?php
return $this->findSelectWhereOrder('article.*, article.title_'.$lang.' AS title, article.perex_'.$lang.' AS perex, article.order, menu.alias_'.$lang.' AS menu, article.user.name, article.user.id AS menu_id', array('article_menu.menu_id' => $menuId, 'article.user_id' => $user), 'article.state >='.$state, 'article.order ASC');
?>

Mělo to být umístěno v části SELECT, samozřejmě.