【发布时间】:2019-08-16 14:07:17
【问题描述】:
您能帮我将查询的原始部分转换为使用查询生成器吗?
我被困在了一起:
$profile = UserProfiles::select('id')->where('alias', $profileAlias)->first();
$dbRawMessagesCount = '
(SELECT COUNT(pm.id)
FROM profile_messages pm
WHERE pm.to_profile_id='.$profile->id.'
AND pm.from_profile_id=profile_friend.id
AND pm.is_read=0) AS messages_count
';
$friends = ProfileFriend::select('profile_friend.*', DB::raw($dbRawMessagesCount))
->with('friendProfile')
->whereHas('ownerProfile', function ($query) use ($profile) {
return $query->where('id', $profile->id);
})
->orderBy('messages_count')
->paginate();
【问题讨论】:
-
您能否将预期的结果解释清楚一点? :) 任何额外的上下文都会有所帮助。
-
我想他得到了原始 SQL 并希望以查询生成器格式重写它。您会看到他通过 SQL 方法计算了一些消息,然后使用该字段来 orderBy
标签: laravel laravel-5 eloquent laravel-query-builder