Bonjour,

Alors voilà dans le MVC en 7 jours j'ai un problème sur mes models avec le retour PDO.

Quand je fais un left join j'aimerais bien que PDO le retourne un tableau de ce genre comme dans CakePhp:

object(stdClass) {
     "Recette"] => object(stdClass) {
          "id"] => "4"
          "img"] => "monimage.jpg"
          "user_id"] => "1"
     }
     "User"] => object(stdClass) {
          "id"] => "1"
          "level"] => "1"
     }
     "Group"] => object(stdClass) {
          "id"] => "1"
          "rang"] => "admin"
          "color"] => "ff0000"
     }
     "Comment"] => object(stdClass) {
            [0] => object(stdClass) {
                  "id"] => "1"
                  "recette_id"] => "5"
                  "user_id"] => "1"
                  "message"] => "test"
                  "created"] => "2011-12-10 10:26:53"
            }
            [1] => object(stdClass) {
                  "id"] => "2"
                  "recette_id"] => "5"
                  "user_id"] => "1"
                  "message"] => "test"
                  "created"] => "2011-12-10 10:26:53"
            }
            [2] => object(stdClass) {
                  "id"] => "3"
                  "recette_id"] => "5"
                  "user_id"] => "1"
                  "message"] => "test"
                  "created"] => "2011-12-10 10:26:53"
            }
     }
}

Car pour le moment j'ai un retour comme ceci:

array(2) {
  [0]=>
  object(stdClass)#10 (34) {
   "id"]=>
    string(1) "4"
    "title"]=>
    string(4) "test"
    "photos"]=>
    string(0) ""
    "online"]=>
    string(1) "1"
    "slug"]=>
    NULL
    "category_id"]=>
    string(1) "2"
    "user_id"]=>
    string(1) "1"
    "created_at"]=>
    string(19) "2011-12-05 22:37:55"
    "modified_at"]=>
    NULL
    "username"]=>
    string(5) "admin"
    "mail"]=>
    string(14) "test@gmail.com"
    "name"]=>
    string(14) "Administrateur"
    "color"]=>
    string(6) "dc143c"
    "order"]=>
    string(2) "10"
    "recette_id"]=>
    string(1) "5"
    "message"]=>
    string(4) "test"
    "created"]=>
    string(19) "2011-12-10 10:26:53"
  }
  [1]=>
  object(stdClass)#11 (34) {
   "id"]=>
    string(1) "4"
    "title"]=>
    string(4) "test"
    "photos"]=>
    string(0) ""
    "online"]=>
    string(1) "1"
    "slug"]=>
    NULL
    "category_id"]=>
    string(1) "2"
    "user_id"]=>
    string(1) "1"
    "created_at"]=>
    string(19) "2011-12-05 22:37:55"
    "modified_at"]=>
    NULL
    "username"]=>
    string(5) "admin"
    "mail"]=>
    string(14) "test@gmail.com"
    "name"]=>
    string(14) "Administrateur"
    "color"]=>
    string(6) "dc143c"
    "order"]=>
    string(2) "10"
    "recette_id"]=>
    string(1) "5"
    "message"]=>
    string(4) "test"
    "created"]=>
    string(19) "2011-12-10 10:27:58"
  }
}

Vous voyez c'est bordel et à chaque commentaire il me renvoi un tableau contenant tout.

Donc si vous savez comment je pourrais faire pour obtenir comme le premier tableau.

Merci d'avance....

4 réponses


Grafikart
Réponse acceptée

Dans ton select tu peux renommer un champ pour qu'il ne confonde pas, par exemple : SELECT Comment.user_id as cuser_id

Pas possible de le faire directement, Il faut traiter les données en PHP si tu veux avoir un joli tableau :(

djtec
Auteur

Jai testé avec du php mais il s'enmelle les pinceaux car dans comment recette j'ai un champs user_id il arrive pas a faire la différence entre quel champs user_id va avec quel tableau.

Donc je cherche un moyen pour savoir de quelle table vient le champs.

Si tu as une idée?

djtec
Auteur

Et bien fesant comme tu dis cela fonctionne par contre ça le fait de façon automatique comme ça j'ai rien de plus à écrire.

Merci Grafikart.