Php 使用laravel DB查询,但作为雄辩的模型返回
我想知道是否可以使用Php 使用laravel DB查询,但作为雄辩的模型返回,php,mysql,laravel,laravel-5,eloquent,Php,Mysql,Laravel,Laravel 5,Eloquent,我想知道是否可以使用DBfacade进行查询,但返回的是一个雄辩的模型 例如,我使用db查询生成器进行此查询 \DB::table('users')->first(); 但在查询之后,我希望所有结果都是App\User 同样的结果 \App\User::first() 这个问题的目标是,如果我有一个返回一组用户的复杂查询,该怎么办。使用雄辩的模型并不是很有效,我想这就是为什么我使用查询生成器进行原始查询,但我也希望结果是雄辩的模型实例 也许你可以使用collect功能,它可以帮助你有很多方法
DB
facade进行查询,但返回的是一个雄辩的模型
例如,我使用db查询生成器进行此查询
\DB::table('users')->first();
但在查询之后,我希望所有结果都是App\User
同样的结果
\App\User::first()
这个问题的目标是,如果我有一个返回一组用户的复杂查询,该怎么办。使用雄辩的模型并不是很有效,我想这就是为什么我使用查询生成器进行原始查询,但我也希望结果是雄辩的模型实例 也许你可以使用
collect
功能,它可以帮助你有很多方法,比如什么能给你带来口才。你可以看到所有的方法
代码如下所示:
use Illuminate\Support\Facades\DB;
collect(DB::table('users')->first())
不幸的是,收集功能不是我要找的。collect函数将数组转换为集合。我想要的是将查询返回到一个雄辩的模型
collect()
创建一个集合,它不会神奇地将数组转换为一个模型实例。是的,我说的就像,但它当然不是一个模型instanceDB已经返回了一个collection@TsaiKoga我不认为这是重复的。我想把它作为一个有说服力的模型,比如App\User
,而不是作为一个集合,它将具有相同的效率。当您执行查询时,Elount上增加的慢度几乎来自您实例化模型时的一些数据处理。如果你要实例化它,那么你会有同样的效率。@Don’谢谢你指出。让我检查一下。@EliasSoares我也想到了这一点,但也许有一些小的区别,我得自己检查一下