1

Cakephp モデルについて質問があります。

var $hasMany キーワードに動的条件を追加したい

現在の user_id のような条件を追加したいのですが、ログイン後にユーザー ID を取得しました。

var $hasMany = array(
    "AskComment"=>array('limit'=>3),
    'AskStatistic',
    'AskContactsLink',
    'AskStatistic',
    'AskObject',
    'AskLikes'
);
4

2 に答える 2

2

モデルに動的条件を追加する場合は、モデルの関連付けシップをコントローラーのコードに動的にバインドする必要がある場合があります。既存/新規の関連付けられたモデルに新しい条件を課したいコントローラーのメソッドに次のコードを記述します。

$this->PrimaryModel->bindModel(array('hasMany' => array(
    'AskComment' => array(
        'className' => 'AskComment',
             'foreignKey' => 'primary_id',
              'conditions' => array('AskComment.user_id' => $user_id)
         )
    )
));

このリンクを見てください:その場での関連付けの作成と破棄。これは確かに同じことを達成するのに役立ちます。

于 2012-09-05T08:09:51.840 に答える
0

Modelの構築関数に関連付けを入れる方が良いと思います。このような:

/**
 * @see Model::__construct
 */
public function __construct($id = false, $table = null, $ds = null) {
    public $hasMany = array(
        'AskComment' => array(
            'className' => 'AskComment',
            'foreignKey' => 'primary_id',
            'conditions' => array(
                'AskComment.user_id' => $user_id,
            ),
        ),
    );
}
于 2012-09-06T03:32:11.993 に答える