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

posted @ 2022-12-28 16:48  Bashuslovakia  阅读(164)  评论(0编辑  收藏  举报