CakePHP paginate结果与另一个与HABTM链接的表上的条件

时间:2011-02-08 17:56:07

标签: php cakephp has-and-belongs-to-many conditional-statements paginate

我已经做了一些搜索,但我找不到足够的相关/适用于我的场景。我有:

Jobs <--> HABTM (Users_jobs table) <--> Users

我想在我的paginate()控制器上执行Job条件User.id,因为我需要从当前用户获取和分页所有作业。

如果您确实提供了指向其他主题/网站的链接,请提供相关说明以及如何将其应用于我的案例。

干杯,
尼古拉斯。

1 个答案:

答案 0 :(得分:1)

确保您的HABTM关联设置正确(cake bake期望联接表格为jobs_users而不是users_jobs(请参阅:Cakephp-HABTM)如果是,请更改将以下示例中的JobsUser引用到UsersJob以匹配您描述的布局。

//In an action in jobs_controller.php

//Fake a HasOne association to the JobsUser model, setting $reset to false
$this->Job->bindModel(array(
    'hasOne' => array(
        'JobsUser'
    )
), false);

//Setup the paginate conditions, grouping on job.id
//Set $user_id to the user to filter results by (can also be an array of users)
$options = array(
    'group' => 'Job.id',
    'conditions' => array(
        'JobsUser.user.id' => $user_id
    )
);
$this->paginate = $options;
$users = $this->paginate();