CakePHP的多表通用查询模型

时间:2013-05-21 20:30:49

标签: mysql cakephp join multi-table

我需要构建大约25个连接查询才能在CakePHP上的项目中运行。

在构建查询的MySQL WorkBench或phpMyAdmin中工作要快得多, 然后放入PHP代码而不是多次使用搞砸了cakePHP模型的parms 与MySQL查询没有一对一的关系。

是否有一个无表或多表“拿任何MySQL”的例子来减少或消除CakePHP的复杂性?

2 个答案:

答案 0 :(得分:0)

TLDR:

使用Model的query()方法编写您想要的任何MySQL。

更多详情:

听起来你还没读过这本书。在抨击你不理解的事情之前,应该尝试一下。

对于其他可能想要学习如何在CakePHP中加入内容的人:

How to Join using CakePHP

How to run any MySQL query in CakePHP

答案 1 :(得分:0)

CakePHP为您提供了Model :: query()以获得更多控制权。如果你真的想放弃CakePHP的find方法,我会倾向于你也使用预备语句。

$db = $this->getDataSource();
$db->fetchAll(
    'SELECT * from users where username = ? AND password = ?',
    array('jhon', '12345')
);
$db->fetchAll(
    'SELECT * from users where username = :username AND password = :password',
    array('username' => 'jhon','password' => '12345')
);

以下是注释:

  

query()不支持$ Model-> cacheQueries,因为它的功能是   本质上与调用模型的不相交。避免缓存   调用查询,提供第二个参数false,即:query($ query,   $ cachequeries = false)