0

クラシファイド コントローラーで働いています

これはコードです

   public function create_add(){
          if(!empty($this->data))
         {
             if($this->Classified->save($this->data)){
               $this->User->save(array('id'=>$this->Auth->User('id'),'pending_attempts'=>$this->Auth->User('pending_attempts')-1));
             $data = $this->User->read();
             $this->Auth->login($data);
             }
            }
    }

たとえば、ユーザー テーブルの「pending_attempts」列を更新したい:

保留中の試行 = 10;

このコードを実行するたびに、pending_attempts は 10 - 1 になり、結果は常に 9 になります。

ログイン後のみコードが機能し、データベースを更新します。そのコード create_add() を再度実行すると、常に pending_attempts =9 と表示されます

問題は、認証データを更新する方法ですか?

4

4 に答える 4

1

昨年行ったアプリケーションでリフレッシュするための多くのトリックを試しましたが、何も役に立ちませんでした。なぜ代替案を提供できるのでしょうか。セッション中の user_id を使用して最初にテーブルからデータをフェッチします。操作用データ.....ハッピーコーディング仲間...

于 2012-07-23T10:02:41.190 に答える
1

'pending_attempts' を更新していません。次に例を示します。

保留中の試行 = 10;

このコードを実行するたびに、pending_attempts は 10 - 1 になり、結果は常に 9 になります。

'pending_attempts'=>$this->Auth->User('pending_attempts')-1)

あなたのコードを見ると、ユーザー認証セッションを更新しようとしていると思いますが、うまくいかないと思います:

$this->Auth->login($data);

ここを見てください

于 2012-07-22T19:05:35.047 に答える
0

私は私の質問の解決策を得ました。そのコードは私にとってはうまくいきます

public function create_add()
 {
    if(!empty($this->data))
      {
        if($this->Classified->save($this->data))
          {

         $user_data = $this->User->find('first',array('fields' => array('id','pending_attempts'),'conditions'=>array('User.id'=>$this->Auth->User('id'))));
         $this->data['User']['id'] = $this->Auth->User('id');
         $this->data['User']['pending_attempts']= $user_data['User']['pending_attempts']-1;
         $this->User->save($this->data);
       }
    }
  }
于 2012-07-23T18:41:14.667 に答える
0

メソッドは次のようになります。

public function create_add()
{
     if(!empty($this->data))
     {
         if($this->Classified->save($this->data))
         {
                 $user_data = $this->User->find(null, $this->Auth->User('id'));
                 $user_data['User']['pending_attempts'] -= 1;
                 $this->User->save($user_data);
                 $this->Auth->login($user_data);
         }
     }
}

私はそれをチェックし、それは働いています。うまくいかない場合はお気軽にお尋ねください。

于 2012-07-23T12:12:22.253 に答える