实际上我有1个查询,但我无法将其转换为CakePHP查询格式。
$result = "select
* from esl_userresults
where
esl_userresults.esl_songID = esl_lyrics.id
and esl_lyrics.song_name like '%".$esl_keyword."%'" ;
当我将此查询转换为CakePHP时,会出现如下错误:
esl_userresults.esl_songID unknown column.
答案 0 :(得分:1)
您可以使用例如在蛋糕上轻松运行直接的SQL查询: $ this-> Picture-> query(“SELECT * FROM pictures LIMIT 2;”); (cake manual)
或尝试类似的东西:
$result = Esl_Userresults->find('all' , array('conditions' => array(
"Esl_Userresults.esl_songID" => "Esl_Lyrics.id",
"Esl_Lyrics.song_name LIKE" => '%'.$esl_keyword.'%'),
'recursive' => 1)
);
..鉴于您已正确链接Esl_Userresults和Esl_Lyrics模型。
答案 1 :(得分:0)
使用可包含的行为而不是递归。它可以让您控制到单个字段级别。现在使用它,在早期阶段,将使它成为后来的第二天性。
如果您对构建条件感到困惑,请在方法调用之外构建它。
尽量避免使用双引号,除非您需要包含转义或解析数据 - 它们的速度较慢。
$conditions = array(
'EslUserresult.esl_songID' => 'EslLyric.id',
'EslLyric.song_name LIKE' => '%'.$esl_keyword.'%'
)
$this->EslUserresult->contain('EslLyric.text');
$result = $this->EslUserresult->find('all',array('conditions'=>$conditions));
答案 2 :(得分:0)
您可以使用AppModel
的{{1}}函数来运行SQL查询。
ex:query()
表格$this->ModelName->query('SELECT * FROM
这将返回一系列选定的记录。您可以传递简单查询以及复杂的连接查询。