})->orWhere(function ($query) { $query->where('pages_count', '<', 200)->where('description', '=', ''); })->get(); dd($result); }); /** * Find books between 100 and 200 pages */ Route::get('whereBetween', function () { dd(Book::whereBetween('pages_count', [100, 200])->get()); }); /** * Find books with titles */ Route::get('whereIn', function () { dd(Book::whereIn('title', ['My First Book', 'My Second Book'])->get()); }); /** * Magic where * Using PHP Magic methos a dynamically create where methods on table columns * Only valid when checking equal values */ Route::get('magicWhere', function () { dd(Book::wherePagesCount(230)->first()); }); /** * Query scopes * Defined in Book model */ Route::get('cheap', function () { dd(Book::cheap(11)->get());
}); Route::get('book_get_where_more_complex', function () { $results = \App\Book::where(function ($query) { $query->where('pages_count', '>', 120)->where('title', 'LIKE', '%Book%'); })->orWhere(function ($query) { $query->where('pages_count', '<', 200)->orWhere('description', '=', ''); })->get(); return $results; }); Route::get('book_get_whereBetween', function () { $results = \App\Book::whereBetween('pages_count', [170, 200])->get(); return $results; }); // Return all results that have title that exist in this array Route::get('book_get_whereIn', function () { $results = \App\Book::whereIn('title', ['My Third Book!', 'My Second Book!'])->get(); return $results; }); // Fetching all records with the where clause in conjunction with a column Name a.k.a magic Where Route::get('book_get_whereColumnName', function () { $results = \App\Book::whereTitle('My Fourth Book!')->get(); return $results; }); // Return all books that dont exist. .ie books that have the title column as NULL Route::get('book_get_whereNull', function () { $results = \App\Book::whereNull('title')->get(); return $results; }); /** * AGGREGATES */