如何将SQL查询转换为CakePHP?

如何将SQL查询转换为CakePHP?,php,mysql,cakephp,Php,Mysql,Cakephp,我已经有了正确的SQL查询,但是现在我在更改CakePHP的查询时遇到了问题。我应该怎么做才能得到相同的SQL?提前谢谢 SELECT tests.id, tests.name,tests.tag_on, tests.status, tests.date_scheduled, tests.date_done, tests.remarks, field_user.name AS fielduser, sales_user.name AS salesuser FROM tests INNER J

我已经有了正确的SQL查询,但是现在我在更改CakePHP的查询时遇到了问题。我应该怎么做才能得到相同的SQL?提前谢谢

SELECT tests.id, tests.name,tests.tag_on, tests.status, tests.date_scheduled, tests.date_done, tests.remarks,
field_user.name AS fielduser, sales_user.name AS salesuser 
FROM tests 
INNER JOIN users field_user ON (field_user.id = tests.field_user_id) 
INNER JOIN users sales_user ON (sales_user.id = tests.sales_user_id); 
这是我的TestsController.php

public function index()
{
        $this->paginate = ['limit' => 100, 'order' => ['date_scheduled' => 'asc'],
        'contain' => ['Users','FieldUsers'],
        'fields' => ['id', 'name', 'tag_on', 'status', 'date_scheduled', 'date_done', 'remarks', Users.id','Users.name','field_user_id','sales_user_id'],
        'sortWhitelist' => ['id', 'name','tag_on', 'status', 'date_scheduled', 'date_done', 'remarks','Users.id','Users.name','field_user_id','sales_user_id'],
        ];
    }
这是我的TestsTable.php

class TestsTable extends Table
    {

        public function initialize(array $config)
        {
            parent::initialize($config);

            $this->table('tests');
            $this->displayField('name');
            $this->primaryKey('id');

            $this->belongsTo('Users', [
                'className' => 'Users',
                'foreignKey' => 'sales_user_id',
                'joinType' => 'INNER'
            ]);

            $this->belongsTo('FieldUsers', [
                'className' => 'Users',
                'foreignKey' => 'field_user_id',
                'joinType' => 'INNER'
            ]);

你可以用两种方法来做这件事,我从这两种方法中写了一种

$this->Tests->find('all')
        ->contain(['Users', 'FieldUsers'])
        ->select(['Tests.name', 'Tests.tag_on', 'Tests.status', 
             'FieldUsers.name'=>'fieldUser', 'Users.name'=>'userName'])
        ->limit('100')
        ->order(['date_scheduled' => 'asc']);
您可以使用另外两种方法以数组的形式获得结果

->hydrate(false)->toArray();  //Must be at the end
快乐编码:)