ユーザーとエンティティの2つのモデルがあります。エンティティページで、ページネーションと簡単な検索機能を使用する必要があります。検索関数はエンティティをフィルタリングしますが、フィルタリングするデータはユーザーモデル内のvirtualFieldです。
エンティティモデル:
public $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
};
ユーザーモデルの仮想フィールド:
public $virtualFields = array("searchFor" => "CONCAT(User.first_name, ' ',User.last_name, ' ',User.email)");
そして、エンティティコントローラー内の条件:
$conditions["User.searchFor LIKE"] = "%".str_replace(" ","%",$this->passedArgs["searchFor"])."%";
$this->paginate = array(
'conditions' => $conditions,
'order' => array('Re.created' => 'DESC'),
'limit' => 20
);
連想モデルのクエリ内でvirtualFieldsを使用できず、「ランタイム」で使用する必要があると書かれているため、これを読み取ることはできませんが、その方法や方法がよくわかりません。この場合はそれ。これを機能させるためのアイデアや方法はありますか?