需求:
tp5.1的关联统计功能中,如果用了闭包函数,但同时又想设置别名
解决办法:
可以在闭包函数中return一个字符串,这个字符串就会被用作别名。
例如:想要withSum的别名是abc,那么就在withSum的闭包函数里写上:return ‘abc’;
$test= new Test;
$data = $test->withSum(['aaa'=>function($query){
$query->where('id',1);
return 'abc';
}],'xyz')->select();
tp5.1的关联统计功能挺实用的,只要理解得好的话,个人感觉相比直接写原生SQL要更直观。当出现上述情况,既需要用闭包限制统计条件,又需要给统计结果一个别名的情况下,就可以用以上方式实现。
当时找过tp5.1在看云上的官方手册和评论区的提问和解答,有个网友的确解答了上面的需求,但是表述太简单了,当时没看懂,当时也没找到有通俗描述且有具体样例的回答。最后我也是看tp5.1的框架关于关联统计部分的源码才发现是可以这么返回别名的。