首先,我对如何通过简单查询使用paginate函数感兴趣。 例如,我有以下查询:
$query = "SELECT
dw.id,w.word,d.definition,dw.user_id,IF(IFNULL(dw.definition_id,0) = 0,(SELECT COUNT(phrase_id)
FROM phrase_word wp1 WHERE wp1.user_id = dw.user_id AND wp1.word_id = dw.word_id),(SELECT COUNT(phrase_id)
FROM phrase_word wp2 WHERE wp2.user_id = dw.user_id AND wp2.word_id = dw.word_id AND wp2.definition_id = dw.definition_id)
) phrases_count
FROM definition_word AS dw
INNER JOIN words AS w ON w.id = dw.word_id
LEFT JOIN definitions AS d ON d.id = dw.definition_id
WHERE dw.user_id = 2";
我不能以这种方式使用分页方法。
$unknown_words = DB::select($query)->paginate(5);
或者如果可能的话如何转换
"IF(IFNULL(dw.definition_id,(SELECT COUNT(phrase_id)
FROM phrase_word wp2 WHERE wp2.user_id = dw.user_id AND wp2.word_id = dw.word_id AND wp2.definition_id = dw.definition_id)
) phrases_count";
将这部分查询放入查询生成器中。