Laravel分页在构建正确的查询时失败

时间:2015-11-15 14:52:28

标签: php sql laravel laravel-5 laravel-5.1

当我尝试运行此查询时:

SELECT CONCAT(`user`.`firstName`,' ',`user`.`lastName`) AS `fullName`" 
FROM `user`
WHERE `fullName` LIKE '%a%'

使用User模型,Laravel在运行查询之前自行发送以下查询:

SELECT COUNT(*) AS AGGREGATE
FROM `user`
WHERE `fullName` LIKE '%a%'

导致SQLSTATE[42S22]: Column not found: 1054 Unknown column 'userFullName' in 'where clause例外。 Laravel有什么问题?如何针对此问题运行上述查询?

1 个答案:

答案 0 :(得分:0)

我担心在这种情况下你应该使用手动分页或重建你的主要查询:

SELECT CONCAT(`user`.`firstName`,' ',`user`.`lastName`) AS `fullName` 
FROM `user`
WHERE CONCAT(`user`.`firstName`,' ',`user`.`lastName`) LIKE '%a%'

否则,当Laravel创建查询以计算行数时,它将不知道什么是fullName列(因为在生成查询以计算行数时不使用列,因此仅使用count(*)这个查询。