クエリの結果をフィルタリングしようとしています。ユーザーは自分と同じ company_group_id を持つ会社しか表示できないため、モデルの beforeFind 関数にその条件を追加することにしました。
function beforeFind($queryData) {
App::uses('CakeSession', 'Model/Datasource');
$user = CakeSession::read('Auth.User');
$queryData['conditions']['Company.company_group_id'] = $user['company_group_id'];
parent::beforeFind($queryData);
}
$queryData を pr() すると、この状態が表示されます。
Array
(
[conditions] => Array
(
[Company.company_group_id] => 2
)
)
残念ながら、ページネーションを呼び出すと、結果のクエリはこの条件を無視します
SELECT `Company`.`id`, ... WHERE 1 = 1 GROUP BY `Company`.`id` ORDER BY `Company`.`name` asc LIMIT 10
私はこれを正しくやっていますか?または、正しいレコードをユーザーに表示する別の方法はありますか?