2011-11-10 6 views
0

最新のコードイグナイタ(2.0.3)とphp-active 0.0.1を使用します。php activerecord saveがcodeigniterで動作しない

save()以外はすべて正常に動作しています。

コード:

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

ここに私の問題だ:私は動作しません上記のコードを理解することはできませんが、私はif ($_POST)の外にコードを取るならば、それは正常に動作し、いくつかの理由があります。

私は間違っていますか?


EDIT:

おかげダミアンPirsy $this->input->post()は、トリックを行いますが、私は、コードの問題リターンでコメントコメントを解除したとき。今

コードは次のとおりです。

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(); 
    } 
    } 
    */ 
} 

要素の新しいIDは($element->routeid -= 1;)は右INGのechoですが、私は最初と同じ問題を抱えていると2のどちらも仕事を保存します。

答えて

0

あなたは詳細やデバッグ情報をあまり提供していないので、私はちょうど推測します。代わりにCIのネイティブポストハンドラを使ってみてください。あなたが条件としてそれを使用しているので、あなたは、また、ISSET場合(参照)か、var_dump()$_POST配列をエドが必要

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

UPDATE:

私たちがしているので、投稿変数について話して、あなたがそれらを望むのとまったく同じであると仮定しないでください。 $this->input->post('field')は、インデックスが存在しない場合FALSEを返します。それはあなたのif条件をよくブレーキするかもしれません。 ); あなたがこれを行うには数字が必要と仮定すると、あなたは

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? 
} 

そして$oldRoute. し、[OK]を、ええ、多分あなたは私よりクリーンなコードを書くことができるため、同じようにチェックを行うことができますが、画像を取得します

+0

これまでに言ったことがあります...詳細を記入してください。 –

+0

$ _POSTは確かに空ではありません...後でエコーを追加してエコーしています... –

+0

申し訳ありませんが、分かりましたが、私に分かります - >入力 - >投稿がうまくいくようです –

関連する問題