Složený primární klíč a Notice: Array to string conversion
- iskejp
- Člen | 41
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
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ě.