Laravel Where Exists Clauses

Метод whereExists позволяет написать SQL-условия where exists. Метод whereExists принимает в качестве аргумента замыкание, которое получит экземпляр конструктора запросов, позволяя вам определить запрос для помещения в условие "exists":

DB::table('users')
            ->whereExists(function($query)
            {
                $query->select(DB::raw(1))
                      ->from('orders')
                      ->whereRaw('orders.user_id = users.id');
            })
            ->get();

Этот пример выполнит такой SQL-запрос:

select * from users
where exists (
    select 1 from orders where orders.user_id = users.id
)

Похожие записи

Laravel migration: Specified key was too long

В Laravel 5.4 кодировкой базы данных по умолчанию стала utf8mb4. Это повлияло на приложения, использующие MySQL v5.7.7 и меньше. Во время выполненния миграций, может вывалитсья ошибка Specified key was too long.

27 августа 2017 г. в Laravel

Laravel. Catch FindOrFail Exception

use Illuminate\Database\Eloquent\ModelNotFoundException;
...
try {
  $publication = Publication::findOrFail($id);
} catch (ModelNotFoundException $ex) {
  // Error handling code
}
22 декабря 2017 г. в Laravel

Eloquent collection groupBy Carbon

use Carbon\Carbon;
...

$projectsGroupedByYear = $projects->groupBy(function($p) {
    return Carbon::parse($p->start_year_date)->format('Y');
});