2013-08-16 5 views
0

Existe-t-il un moyen de mettre à jour un enregistrement dans une table en utilisant un modèle ORM sans aucune requête supplémentaire?Comment mettre à jour un enregistrement sans charger un orm?

Je sais que je peux simplement utiliser l'objet DB pour faire une requête brute, mais je voudrais le faire avec un objet ORM.

J'ai le code suivant. Le problème du code est qu'il exécute une requête de sélection puis exécute une requête de mise à jour.

J'ai également essayé ce qui suit.

ORM::factory("myobject")->values(array("id"=>1, "name"=>"my new name"))-save(); 

le problème de cette requête est que l'ORM exécute « afficher les colonnes complètes de myobject »

Comment puis-je faire une requête de mise à jour sur un objet ORM sans exécuter des requêtes supplémentaires?

Répondre

1

La raison pour laquelle vous obtenez la requête show full columns for .. est que vous n'avez pas défini $_table_columns, où les données de la colonne de table pour cet objet sont stockées. Kohana a besoin de les connaître afin que vous puissiez définir des valeurs pour cet objet.

E.g.

protected $_table_columns = array(
    'id' => array('type' => 'int'), 
    'name' => array('type' => 'string'), 
    ....... 
); 

Et pour répondre à votre question. La deuxième façon semble être la bonne façon de le faire :) Dès que vous avez fait ce qui précède, la requête 'supplémentaire' devrait disparaître

Questions connexes