Laravel Éloquent n'est pas de mise à jour uniquement insertion

Je suis confronté à quelques problèmes avec PHP Laravel fonction de mise à jour. Il n'a pas de mise à jour, insérez uniquement.

 public function post_rate(){
    $o = Input::all();

    //has user already rated?!
    $query = DB::table("ratings")->select("id")->where("user", "=", Auth::user()->id)->where("story_id", "=", $o['story_id'])->get();
    foreach ( $query as $d):
        $theID = $d->id;
    endforeach;
    if ( empty($query)):  //User hasn't rated!
           $z = new Rating(); 
    else: 
          $z = new Rating($theID);  //user has rated, tell which to update  
-----------------------------^ that cause the problem!
     endif;

        $z->story_id = $o['story_id'];
        $z->user = Auth::user()->id;
        $z->rating = $o['rating'];
        $z->save();

         echo "OK";

}

Il fonctionne lorsque aucune ligne fondée, mais quand je vais l'utiliser de nouveau la Cote (à quelque chose), il échoue.

la colonne id de la "notation" de la table est primaire et auto_increment.

Dans mon modèle, j'ai aussi mis en place

 public static $key = 'id';

La sortie "$theID" contient également de l'correctement l'ID de la base de données mysql ligne.

Conseil-si vous voulez obtenir un tableau contenant les valeurs à partir d'une seule colonne, vous pouvez le faire de cette façon: $idArray = DB::table("notes")->where("utilisateur", "=", Auth::user()->id)->where("story_id", "=", $o['story_id'])->listes('id');

OriginalL'auteur kim larsen | 2013-06-17