如何将SQL查询转换为CakePHP?
我已经有了正确的SQL查询,但是现在我在更改CakePHP的查询时遇到了问题。我应该怎么做才能得到相同的SQL?提前谢谢如何将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
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
快乐编码:)