Bonjour à tous,
je débute dans le dev d'un plugin Moodle, et je bute sur une requête un peu particulière.
J'ai deux tables : mdl_message et mdl_colonne. Les messages sont enregistrés avec un ID automatique dans mdl_message, avec en plus un champ colonneid, qui renvoit à l'ID automatique de la table mdl_colonne. Chaque message n'appartient qu'à une seule colonne.
J'essaye de monter une requête pour récupérer un objet listant toutes les colonnes de l'activité, et pour chacun de ces colonnes l'ensemble des billets. J'ai l'impression que cela fonctionne, mais Moodle m'affiche tout de même des erreurs de type "Warning: Creating default object from empty value in MON_FICHIER at line XXX", et je me retrouve avec des "étages" en plus dans mon objet final.
Actuellement voilà le code que je produis :
//requête de liste des colonnes
$colonnes = $DB->get_records('mdl_colonne', array(mes_conditions));
$allcols = array();
foreach ($colonnes as $col) {
/// pour chaque colonne, je fais une requête récupérant les messages
$messages = $DB->get_records('mdl_message', array('colonneid' => $col->id);
$allmessages = array();
foreach ($messages as $message) {
///cette partie me permet de construire mes DIV avec un id propre
$message->elementid = 'element'.$message->id;
$allmessages[] = (array)$messages;
}
$messagesparcolonne->allmessages = $allmessages;
$allcols[] = (array)$messagesparcolonne;
}
$toutleresultat->allcols = $allcols;
A ce stade, lorsque je fais un print-object de $toutleresultat, j'obtiens le résultat ci-dessous.
Les deux alertes d'erreur m'indiquent des soucis aux lignes "$messagesparcolonne->allmessages = $allmessages;" et "$toutleresultat->allcols = $allcols;". C'est-à-dire au moment de l'affectation des objets...
stdClass Object ( [allcols] => Array ( [0] => Array ( [allmessages] => Array ( [0] => Array ( [id] => 1 [userid] => 45464 [message] => Note 1 col 1 ) [1] => Array ( [id] => 2 [userid] => 45464 [message] => Note 2 Col 1 ) ) ) [1] => Array ( [allnmessages] => Array ( [0] => Array ( [id] => 3 [userid] => 45464 [message] => Note 1 Col 2 ) ) ) ) )
Ce que je cherchais est plus simple... Dans mon idée, ce que je devais récupérer, c'était quelque chose comme :
stdClass Object (
colonne1 => Array
(
[0] => Array
(
[id] => X
[userid} => X
)
[1] => Array
(
[id] ....
)
)
colonne2 => Array
(
etc...
)
)
Quelqu'un aurait-il une idée ? Estc-e seulement faisable ??
Merci d'avance !
Olivier