laravel 构造器clone
这种写法有一个注意事项,一旦你在$query上调用where等约束方法,就会改变此query,有时候我们需要提前clone一个query。
举例说明,比如我们同时要拿到type为1和2的users
$query_1 = User::query();
$query_2 = clone $query_1;
$users_1 = $query_1->where('type', 1)->latest()->get();
$users_2 = $query_2->where('type', 2)->latest()->get();
// 错误 $users_2 = $query_1->where('type', 1)->latest()->get();
// 这样写得到得是type = 1 and $type = 2