rap*_*2-h 4 php laravel eloquent laravel-5 laravel-5.6
我有一个复杂的原始SQL查询,我不想将其转换为查询生成器。有没有办法将查询结果映射到模型?
简而言之,我有这种查询:
SELECT users.* FROM users
WHERE exists (super_long_raw_query)
AND many_more_raw_where_clauses
ORDER BY something_complex
etc;
Run Code Online (Sandbox Code Playgroud)
它仅返回一个模型(对应于一个模型的表)中的列。
将其转换为“ Laravel查询生成器”查询将是可怕的并且不可读:
User::where(/* ... */)
->whereExists(function() { /* super complex callback */ } )
->etc(/* ... */)
Run Code Online (Sandbox Code Playgroud)
原始查询更易于阅读(在这种情况下)。
有没有办法将原始查询映射到模型?(假设它仅返回特定模型的列)
附注:这是一个原始查询使用查询参数(?,:something),因为我不想打针。
使用 fromQuery()
$query = \Illuminate\Support\Facades\DB::raw('select * from users');
$users = \App\User::fromQuery($query, []);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1048 次 |
| 最近记录: |