$model->field('l1.id,l1.name,l1.level,l2.name as pname,l2.url as purl')->alias('l1')->join('__LOCATION__ as l2', 'l1.parent_id=l2.id')->where(['l1.name' => ['like', '%?%']])->page(10)->limit(5)->paginate()SELECT COUNT(*) AS tp_count FROM `location` `l1` INNER JOIN `location` `as` ON `l1`.`parent_id`=`l2`.`id` WHERE `l1`.`name` LIKE '%?%' LIMIT 1看到里面的join的as被当做别名了,请修复这个问题。目前的解决方案是去掉as
但是如果你别名和表名之间有多个空格也会报错,很奇葩
$model->field('l1.id,l1.name,l1.level,l2.name as pname,l2.url as purl')->alias('l1')->join('__LOCATION__ l2', 'l1.parent_id=l2.id')->where(['l1.name' => ['like', '%?%']])->page(10)->limit(5)->paginate();SELECT COUNT(*) AS tp_count FROM `location` `l1` INNER JOIN `location` `` ON `l1`.`parent_id`=`l2`.`id` WHERE `l1`.`name` LIKE '%?%' LIMIT 1 最佳答案