2010-05-07 12 views
1

Quelqu'un peut-il m'aider avec Kohana ORM. Je peux prendre le nom et la valeur. Je peux leur donner de nouvelles valeurs et j'essaie de les sauvegarder à la base, mais dans phpmyadmin je peux voir les anciennes valeurs pour ces attributs d'options. Quel est le problème avec ce code (il fonctionne et echos juste valeur, mais je ne peux pas le voir en dB):Kohana3 ORM enregistrer problème

$option = ORM::factory('draft') 
->where('user_id', '=', $user_id) 
->find() 
    ->draft_options 
    ->where('name', '=', $_POST['name']) 
    ->find(); 

$option->name = $_POST['name']; 
$option->value = $_POST['value']; 
$option->save(); 
if ($option->saved()) echo Kohana::debug($option->value); 

Répondre

1

Est-ce ce que vous cherchez?

$option = ORM::factory('draft') 
    ->where('user_id', '=', $user_id) 
    ->find(); 

$draft_option = $option->draft_options 
    ->where('name', '=', $_POST['name']) 
    ->find(); 

$draft_option->name = $_POST['name']; 
$draft_option->value = $_POST['value']; 
$draft_option->save(); 

if ($draft_option->saved()) echo Kohana::debug($draft_option->value); 
+0

Je pense que votre solution est correcte, mais dans mon cas, ça ne marche toujours pas. Je pense qu'il doit y avoir quelque chose qui ne va pas avec le modèle. – Bob0101

1

vérification Try ne les données sont bien chargées avec « $ option-> chargé() », ou echo l'option $ (elle vous renverra sa clé primaire) après "find()" s'il vous plaît.

+0

$ option-> loaded() echos TRUE et l'option echos object info (Model_Draft_option (35) etc ..). Premièrement, si j'écho $ option-> value alors sa valeur est 1. Ensuite, après avoir changé $ option-> value = 2; $ option-> save(); alors ça ne change toujours pas la valeur. – Bob0101

+0

sont les champs de nom et de valeur appartenant aux projets de table ou draft_options? car l'appel de save() sur un modèle n'enregistre pas les modèles d'appartenance à moins que vous ne surchargiez la méthode save() et lui disiez de le faire. – Kemo

+0

ils appartiennent à draft_options. comment puis-je le remplacer? – Bob0101