0

ユーザーがすでにアカウントを作成しているかどうかを確認するために、一般的な機能を使用しようとしています。次のコードは、コントローラー レベルで機能します。しかし、同じコードを他のすべてのコントローラーにコピーする必要があります。そこで、コンポーネントを作成し、そこに共通機能を配置することを計画しました。

public function is_user_has_account() {
  $has_account = $this->Account->find('all', array(
      'fields'=>array('id'), 
      'conditions'=>array('user_id'=>$this->Auth->user('id')), 'limit' => 1));
  if($has_account) {
    return TRUE;
  } else {
    return FALSE;
  }
}

カスタム コンポーネントにコードを挿入すると、機能しませんでした。コンポーネントでコントローラ関数を使用する最良の方法は何ですか? 私はcakephp 1.3を使用しています

ありがとうございました

4

1 に答える 1

1

この機能をコンポーネントに移すのはやり過ぎだと思います (さらに、コードをかなり単純化できます)。Account代わりに、モデルに移動します。

public function is_user_has_account($userID) {
    return $this->hasAny(array('user_id' => $userID));
}

またはあなたのAppController

public function is_user_has_account() {
    return $this->Account->hasAny(array('user_id' => $this->Auth->user('id')));
}
于 2013-08-18T08:54:22.163 に答える