2010-05-18 3 views
0

Pour séparer clairement les couches Controller et View, je ne souhaite plus passer d'objets complets à mes vues. Au lieu de cela, je veux seulement transmettre des tableaux et des objets qui contiennent les données mais qui n'ont aucune méthode. Sinon, un script de vue serait en mesure de supprimer les enregistrements Doctrine ou de parcourir dans l'arborescence de l'objet des données qui n'étaient pas destinées à la vue.Un moyen facile de convertir une collection Doctrine_Collection de Model en un tableau d'objets simples?

Répondre

1

que vous faites quelque chose qui est tout à fait insensé. Quel est le point de cela? Vous ne vous arrêterez pas/d'autres programmeurs d'opérations illégales dans la couche de vue. Peut-être que vous ne serez pas en mesure de faire $obj->delete(); mais Doctrine_Query::create()->delete()->from('ObjectTable')->execute(); sera toujours disponible. Passez l'objet à la vue et n'exécutez pas de telles méthodes dessus - c'est ce que vous devriez faire.

+0

Le point a été soulevé lors d'un audit de sécurité pour faciliter la consultation des vues. – Alex

8

Je crois $collection->toArray() devrait faire ce que vous voulez

Voir http://www.doctrine-project.org/documentation/manual/1_1/en/working-with-models:arrays-and-objects

+0

Je connais celui-ci mais je trouve des tableaux pas faciles. Existe-t-il un moyen de générer un objet qui contient les données mais pas les méthodes etc.? – Alex

+0

Vous perdrez beaucoup de la magie getter/hydratation que cette doctrine implémente. À long terme, vous vous limitez vraiment. –

Questions connexes