Laravel krok po kroku - część 5 - Query Builder

Paweł Mysior
10 lipca 2018

Laravel ma wbudowany prosty, intuicyjny interfejs do wykonywania zapytań do bazy danych. Używając metod klasy Query Builder możemy łatwo pobierać, dodawać, edytować i usuwać rekordy z bazy danych.

Pobieranie danych

Użyjmy fasady (klasy) DB i jej metody table() żeby dostać instancję query buildera dla tabeli posts. Następnie użyjmy metody get() żeby dostać kolekcję wszystkich rekordów z tabeli.

// routes/web.php
Route::get('posts', function () {
    $posts = DB::table('posts')->get();

    return view('posts.index', ['posts' => $posts]);
});

Metoda get() zwróci kolekcję (tablicę) prostych obiektów, dzięki czemu możemy wyświetlić je w widoku w następujący sposób:

// resources/views/posts/index.blade.php

@foreach ($posts as $post) {
    {{ $post->title }}
}

Załóżmy, że w tabeli mamy kolumnę views, która zawiera informację o liczbie wyświetleń danego wpisu. Chcemy pobrać tylko te wpisy, które mają więcej niż 100 wyświetleń. Używamy metody where() query buildera, żeby dodać warunek WHERE do wykonywanego zapytania.

// routes/web.php
Route::get('posts', function () {
    $posts = DB::table('posts')->where('views', '>', 100)->get();

    return view('posts.index', ['posts' => $posts]);
});

Możemy też uporządkować czy ograniczyć liczbę wyników zapytania:

// routes/web.php
Route::get('posts', function () {
    $posts = DB::table('posts')
        ->orderBy('views', 'desc')
        ->offset(100)
        ->limit(25)
        ->get();

    return view('posts.index', ['posts' => $posts]);
});

Jeśli chcemy otrzymać jeden wynik z tabeli, zamiast metody get() używamy metody first():

// routes/web.php
Route::get('posts/{id}', function ($id) {
    $post = DB::table('posts')->where('id', $id)->first();

    return view('posts.show', ['post' => $post]);
});

Wstawianie danych

Query builder pozwala też użyć metody insert() do wstawiania danych do tabeli w bazie danych.

DB::table('posts')->insert([
    'views' => 'My first post',
    'body' => 'Lorem ipsum dolor sit amet',
]);

Metoda insert() przyjmuje jako parametr tablicę kolumn i ich wartości.

Edytowanie danych

Istnieje też metoda update() do edytowania istniejących rekordów.

DB::table('posts')
    ->where('id', 1)
    ->update([
        'views' => 'My first post',
    ]);

Usuwanie danych

Możemy też usuwać rekordy z bazy danych za pomocą metody delete().

DB::table('posts')->where('id', 1)->delete();

W tej części tutoriala dowiedzieliśmy się jak używać query buildera w celu pobierania, dodawania, edytowania i usuwania danych. W następnej części nauczymy się wykonywać wszystkie te czynności za pomocą ORM Laravela, czyli Eloquenta.

Wygodny hosting zapewnia duet DigitalOceanLaravel Forge.
Copyright © laravelpolska.com

Drogi Użytkowniku!

Dalsze korzystanie z serwisu bez zmiany ustawień dotyczących cookies w przeglądarce oznacza akceptację plików cookies, co będzie skutkowało zapisywaniem ich na Twoich urządzeniach przez serwis internetowy laravelpolska.com. Jeśli nie wyrażasz zgody na przyjmowanie cookies, prosimy o zmianę ustawień w przeglądarce lub o opuszczenie serwisu. więcej

Stosujemy pliki cookies (tzw. ciasteczka) i inne pokrewne technologie, które mają na celu:

  • dostosowanie zawartości stron internetowych Serwisu do Twoich preferencji oraz optymalizacji korzystania ze stron internetowych; w szczególności pliki te pozwalają rozpoznać Twoje urządzenie i odpowiednio wyświetlić stronę internetową, dostosowaną do Twoich indywidualnych potrzeb;
  • utrzymanie Twojej sesji w Serwisie (po zalogowaniu), dzięki czemu nie musisz na każdej podstronie Serwisu ponownie wpisywać loginu i hasła,
  • zapewnienie bezpieczeństwa podczas korzystania z Serwisu,
  • ulepszenie świadczonych przez nas usług poprzez wykorzystanie danych w celach analitycznych i statystycznych,
  • poznanie Twoich preferencji na podstawie sposobu korzystania z naszych serwisów.

Wykorzystanie cookies pozwala nam zapewnić maksymalną wygodę przy korzystaniu z naszego Serwisu poprzez zapamiętanie Waszych preferencji i ustawień na naszych stronach. Więcej informacji o zamieszczanych plikach cookie oraz o możliwości zmiany ustawień przeglądarki oraz polityce przetwarzania danych znajdziesz w polityce prywatności.

Masz możliwość samodzielnej zmiany ustawień dotyczących cookies w swojej przeglądarce internetowej. Z poziomu przeglądarki internetowej, z której korzystasz, możliwe jest zarządzanie plikami cookies. W najpopularniejszych przeglądarkach istnieje m.in. możliwość:

  • zaakceptowania obsługi cookies, co pozwala na pełne korzystanie z opcji oferowanych przez witryny internetowe;
  • zarządzania plikami cookies na poziomie pojedynczych, wybranych przez użytkownika witryn;
  • określania ustawień dla różnych typów plików cookies, na przykład akceptowania plików stałych, jako sesyjnych itp.;
  • blokowania lub usuwania cookies.

Akceptuję pliki cookies