2011-11-10 3 views
0

J'utilise le dernier allumeur de code (2.0.3) et php-active 0.0.1. Tous fonctionnent bien, sauf save();php activeecord save ne fonctionne pas dans codeigniter

code:

if($_POST) 
{    
    $entry= Customers::find_by_routeid('4'); 
    $entry->routeid=5; 
    $entry->save();    
} 

Voici mon problème: pour une raison que je ne peux pas comprendre le code ci-dessus ne fonctionne pas, mais si je prends le code de if ($_POST), il fonctionne très bien.

Qu'est-ce que je fais mal?


EDIT:

Merci Damien Pirsy $this->input->post() le tour est joué, mais quand je les décommenter commentaires dans le code les rendements des problèmes.

Le code est maintenant:

if($this->input->post()) 
{ 
    $id = $this->input->post('id'); 
    $oldRoute = $this->input->post('oldRoute'); 
    $newRoute = $this->input->post('newRoute'); 

    $entry= Customers::find_by_routeid($this->input->post('oldRoute')); 
    $entry->routeid=$this->input->post('newRoute'); 
    $entry->save(); 

    /* 
    if($oldRoute<$newRoute) 
    { 
    for ($i=$newRoute; $i>$oldRoute; $i--) 
    { 
     $element = Customers::find_by_routeid($i); 
     echo $element->routeid -= 1; 
     $element->save(); 
    } 
    } 
    */ 
} 

Les éléments nouveaux ID ($element->routeid -= 1;) sont echo ing droit, mais j'ai le même problème que dans le début et aucun de deux arrêts de travail.

Répondre

0

Vous n'avez pas fourni beaucoup de détails ou d'informations de débogage, donc je vais juste deviner: essayez d'utiliser le gestionnaire de publication natif du CI à la place. Vous devriez avoir var_dump() ed le tableau $_POST, voir si isset() ou non, aussi, puisque vous l'utilisez comme condition

if($this->input->post()) 
{ 
    //... 
} 

MISE À JOUR:

Puisque nous sommes En parlant de variables Post, ne supposez pas qu'elles sont exactement telles que vous les voulez. Gardez à l'esprit que $this->input->post('field') renvoie FALSE lorsque l'index n'est pas présent; cela pourrait bien freiner votre condition. En supposant que vous avez besoin chiffres pour ce faire, vous pouvez faire une vérification comme

if($this->input->post('newRoute') AND is_numeric($this->input->post('newRoute')) 
{ 
    $newRoute = $this->input->post('newRoute'); 
} 
else 
{ 
    // give it a default value, or raise an error, for example. If you need this 
    // variables, and need them to be numbers, you cannot go on in case these 
    // conditions are not met, right? 
} 

Et la même chose pour $oldRoute. Et oui, OK, peut-être vous pouvez écrire un code plus propre que le mien, mais vous obtenez l'image;)

+0

Vous auriez pu dire ça avant ... S'il vous plaît être plus détaillé, afin que les gens puissent vous aider à mieux! –

+0

Le $ _POST n'est pas vide à coup sûr ... J'ai ajouté écho après et il fait écho ... –

+0

Désolé je pense que c'était évident mais donnez-moi i minute this-> input-> poste semble fonctionner –

Questions connexes