Как я могу преобразовать сложный SQL-запрос в Laravel Eloquent - PullRequest
0 голосов
/ 11 сентября 2018

Эта работа лучше всего. но я хочу, чтобы я стал красноречивым. Кто-нибудь может мне помочь. я не знаю, как использовать join в laravel.

DB::select("SELECT u.id,c.conversation_key,u.user_name,u.email
                                 FROM conversation c, user_profile u
                                 WHERE CASE 
                                 WHEN c.user_one = '8790'
                                 THEN c.user_two = u.id
                                 WHEN c.user_two = '8790'
                                 THEN c.user_one= u.id
                                 END 
                                 AND (
                                 c.user_one ='8790'
                                 OR c.user_two ='8790'
                                 )
                                 Order by c.conversation_key DESC Limit 20");

1 Ответ

0 голосов
/ 11 сентября 2018

Конвертированный Elaquen Laravel:

$userId = 8790;
$data['conversations'] = Conversation::selectRaw('user_profile.id, conversation_key, user_profile.first_name, user_profile.email')
            ->where(function ($q) use ($userId) {
                $q->where('user_one', $userId)
                    ->orWhere('user_two', $userId);
            })
            ->join('user_profile', function ($join) use ($userId) {
                $join->on('user_profile.id', '=', 'conversation.user_one')->where('conversation.user_one', '!=', $userId)
                    ->orOn('user_profile.id', '=', 'conversation.user_two')->where('conversation.user_two', '!=', $userId);
            })
            ->orderBy('conversation_key', 'DESC')
            ->take(20)
            ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...