大家用数据库的时候用过 from ('public.users') 这样的语句吗?
事情是这样的,我在 laravel
单元测试中发现了这两个的单元测试:
public function testBasicTableWrapping()
{
$builder = $this->getBuilder();
$builder->select('*')->from('public.users');
$this->assertEquals('select * from "public"."users"', $builder->toSql());
}
public function testJoinAliasesWithPrefix()
{
$builder = $this->getBuilder();
$builder->getGrammar()->setTablePrefix('prefix_');
$builder->select('*')->from('services');
$this->assertEquals('select * from "prefix_services" ', $builder->toSql());
}
发现这两个功能如果一起用的话,会有 bug :
public function testTableWithDatabaseWrapping()
{
$builder = $this->getBuilder();
$builder->getGrammar()->setTablePrefix('prefix_');
$builder->select('*')->from('public.users');
$this->assertEquals('select * from "prefix_prefix_public"."users"', $builder->toSql());
}
于是,向作者提了 issue ,结果管理员却说 from('public.users')
这样的语句是错的,不应该这么用。但是单元测试确实这样用的啊。。。
我想了下,我唯一这样用的场景是需要跨库查询分页,其他情况的确是不需要。请教一下大家还有其他场景会这样用吗?
谢谢大家!
相关 issue 地址:https://github.com/laravel/framework/issue...
吐槽下,提个 issue,还得向管理员解释原有测试样例的存在意义,这个单元测试是作者写的,难道不应该去问作者吗。。。
推荐文章: