0

これは私の結合クエリコードです:

$options['joins'] = array(
                array('table' => 'employees',
                    'alias' => 'Employees',
                    'type' => 'INNER',
                    'foreignKey' => 'employee_id',
                    // 'fields' => 'Users.user', <- get rid of this
                    'conditions' => array(
                        'TravancoDSREmployee.emp_id = Employees.employee_id'
                    )
                )
            );
        $options['fields'] = array('TravancoDSREmployee.*','Employees.*'); // <- insert this
        $options['conditions'] = array( 'TravancoDSREmployee.created_emp_id' => $emp_id);
        $result = $this->TravancoDSREmployee->find('all', $options);
        $this->set('result', $result);

ページネーションで設定したい。

これどうやってするの?

4

3 に答える 3

1

下記URLよりご覧ください。

http://garbers.co.za/2011/05/03/easy-way-to-generate-cakephp-habtm-joins-for-use-in-pagination/

あなたが試すことができるコードは

$fields = array('TravancoDSREmployee.*','Employees.*'); // <- insert this
$conditions = array( 'TravancoDSREmployee.created_emp_id' => $emp_id);
$joins = array();
$joins[] = array(
    'table' => 'employees',
            'alias' => 'Employees',
            'type' => 'INNER',
            'foreignKey' => 'employee_id',
            // 'fields' => 'Users.user', <- get rid of this
            'conditions' => 'TravancoDSREmployee.emp_id = Employees.employee_id',
      );

$this->paginate = compact('fields' , 'joins' , 'conditions');
$result = $this->paginate('TravancoDSREmployee');
$this->set('result', $result);

お役に立てれば幸いです。

ありがとう

于 2012-09-24T05:01:11.990 に答える
0

まず、条件をコントローラーの paginate プロパティに渡す必要があります。その後、paginate 関数を呼び出すことができます。$result を次のように変更します。

$this->paginate = array('TravancoDSREmployee' => $options);
$result = $this->paginate('TravancoDSREmployee');
$this->set('result', $result);
于 2012-09-24T05:10:25.247 に答える
0

はい、分かりました:

これは私にとってはうまくいきます:

$this->paginate['TravancoDSREmployee'] = array(
            'limit' => 3, 
            'contain' => '', 
            'conditions' => array('TravancoDSREmployee.created_emp_id' => $emp_id),
            'fields' => array('TravancoDSREmployee.*','Employees.*'),
            'joins' => array(array('table' => 'employees', 'type' => 'INNER', 'alias' => 'Employees', 'conditions' => array('TravancoDSREmployee.emp_id = Employees.employee_id')))
            );
        $result = $this->paginate('TravancoDSREmployee');
        $this->set('result',$result);

解決策を得るためにこのリンクを参照しました: http://planetcakephp.org/aggregator/items/3544-using-mysql-inner-join-in-cakephp-pagination

于 2012-09-24T09:18:39.007 に答える