当我尝试运行此查询时:
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有什么问题?如何针对此问题运行上述查询?
答案 0 :(得分:0)
我担心在这种情况下你应该使用手动分页或重建你的主要查询:
SELECT CONCAT(`user`.`firstName`,' ',`user`.`lastName`) AS `fullName`
FROM `user`
WHERE CONCAT(`user`.`firstName`,' ',`user`.`lastName`) LIKE '%a%'
否则,当Laravel创建查询以计算行数时,它将不知道什么是fullName
列(因为在生成查询以计算行数时不使用列,因此仅使用count(*)
这个查询。