Как преобразовать данный SQL-запрос в Eloquent Laravel? - PullRequest
0 голосов
/ 04 мая 2019

Я немного пытаюсь преобразовать приведенный ниже SQL-запрос в красноречивый.

Вот пример того, что я пытаюсь сделать -

SELECT u.wallet_address AS wallet_address, p.id AS project_id
FROM users u, projects p, investment_investor i
WHERE u.id = i.user_id AND 
      p.id=i.project_id AND 
      u.wallet_address <> '' AND 
      p.wallet_address <> '' AND
      p.contract_address <> ''
GROUP BY u.id, p.id;

Приведенный ниже SQL-запрос дает ожидаемый результат, который я могу построить с помощью построителя запросов Laravel DB. Но хочу стандартизировать его в рамках Laravel.

Ваша помощь очень ценится!

Ответы [ 2 ]

0 голосов
/ 05 мая 2019
 $result=DB::table('investment_investor')
    ->select('users.wallet_address as wallet_address','projects.id AS project_id')
    ->join('users','users.id','=','investment_investor.user_id')
    ->join('projects','projects.id','=','investment_investor.project_id')
    ->where('users.wallet_address','!=','')
    ->where('projects.wallet_address','!=','')
    ->where('projects.contract_address','!=,'')
    ->groupBy('users.id', 'projects.id')
    ->get();
0 голосов
/ 04 мая 2019

Первое, что вам нужно, чтобы иметь возможность писать запросы в стиле laravel, это то, что называется Model. Пример модели будет выглядеть так

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    //
}

Подробнее об этом можно прочитать здесь

Как только вы его создадите, вы можете начать писать запросы. Например

$results = Users::selectRaw('users.wallet_address as `wallet_address`,'.
                 'id as `project_id`')
                ->get();

Подробнее о соединениях и прочем можно прочитать здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...