如何将原始sql查询传递到cakephp中的paginator组件

时间:2013-04-22 06:56:33

标签: cakephp-2.0

我有行sql查询,我想在cakephp paginator组件的帮助下对此查询进行分页。我可以吗?

$q = "SELECT
                `UserList`.`id`,`UserList`.`user_id`,`UserList`.`list_user_id`,
                `User`.`username` ,`User`.`id` ,
                `UserDetail`.`sex`,`UserDetail`.`image`,`UserDetail`.`display_name`,`UserDetail`.`country`,`UserDetail`.`height`,`UserDetail`.`weight`,`UserDetail`.`hair_color`,`UserDetail`.`eye_color`
                from `user_lists` as `UserList` 
                inner join `users` as `User` on `UserList`.`list_user_id` = `User`.`id`
                inner join `user_details` as `UserDetail` on `UserList`.`list_user_id` = `UserDetail`.`user_id`
                where ((`UserList`.`user_id`=".$user_id.") and (`UserList`.`in_list`='short')) order by `UserList`.`created` desc limit 1";
$this->paginate = array(
                'conditions' => /*Pass $q here */,
            'limit' => 15,
            )
        );

提前感谢。

1 个答案:

答案 0 :(得分:0)

你不

根据问题中的查询,这是行不通的,但您只需正常使用pagination

class UserListsController extends AppController {

    public $paginate = array(
        'contain' => array(
            'User',
            'UserDetail'
        )
    );

    public function index($userId = null) {
        $conditions = array(
            'user_id' => $userId,
            'in_list' => 'short'
        );

        $data = $this->paginate($conditions);
        $this->set('data', $data);
    }

}