конвертировать sql запрос (объединение) в laravel конструктор запросов - PullRequest
0 голосов
/ 08 марта 2020

Я хочу сделать этот запрос с laravel (у меня есть 3 таблицы users, userprojet и projets) users hasmany projets и projet hasmany users, поэтому я сделать другую таблицу userprojet, чтобы присоединиться к двум таблицам, и теперь я пытаюсь извлечь projet указанного пользователя c с этим запросом

   select projets.* 
     from projets p 
        , userprojet up 
        , users u 
    where p.id= up.projet_id
      and up.user_id = u.id
      and user_id = 2;

Мне нужна помощь, пожалуйста.

Ответы [ 2 ]

0 голосов
/ 08 марта 2020

Вы также можете определять отношения «многие ко многим» в своих моделях вместо того, чтобы писать запросы каждый раз

// User model
public function projets()
{
    return $this->belongsToMany(Projet::class, 'userprojet');
}

// Projet model
public function users()
{
    return $this->belongsToMany(User::class, 'userprojet');
}

// in controller
$user = User::first(); // for example
dd($user->projets);

// with eager loading
$user = User::with('projets')->first();
dd($user->projets);
0 голосов
/ 08 марта 2020

Вы можете попробовать это:

$users = DB::table('projets')
            ->join('userprojet', 'projet_id.id', '=', 'userprojet.projet_id')
            ->join('userprojet', 'users.id', '=', 'userprojet.user_id')
            ->select('project.*')
            ->where('userprojet.user_id', 2)
            ->get();

Ссылки:

Laravel -> Запросы -> Объединения

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