• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

zapytanie SELECT w kontrolerze laravel

Object Storage Arubacloud
0 głosów
181 wizyt
pytanie zadane 27 listopada 2020 w PHP przez kmpl500 Nowicjusz (170 p.)

Czytałem dokumentację Laravela, ale dalej mam problem.

Mam zapytanie, które potrzebuję zaimplementować w laravelu. Rozumiem, że muszę napisać funkcję w kontrolerze. Następnie zmienna będzie w widoku wyświetlać listę osób, które nie mają przydzielonego komputera.

Zapytanie wygląda tak: 

SELECT imie, nazwisko
FROM blogs
WHERE id NOT IN (SELECT blogs_id FROM magazyns)

Zapytanie korzysta z 2 tabel. 

1 odpowiedź

+1 głos
odpowiedź 27 listopada 2020 przez mtk3d Nałogowiec (46,690 p.)
Jeśli chcesz wykonać zapytanie SQL w Eloquencie, to możesz użyć tego: https://laravel.com/docs/8.x/database#running-queries
Ale być może lepszym rozwiązaniem będzie skorzystanie z modelu Eloquenta, który ma przypiętą relację pomiędzy blogs i magazines i wtedy jedną prostą metodą możesz wyciągnąć wszystkich którzy nie mają: https://laravel.com/docs/8.x/eloquent-relationships#querying-relationship-absence
komentarz 27 listopada 2020 przez kmpl500 Nowicjusz (170 p.)

Dziękismiley Będę próbowal.

komentarz 28 listopada 2020 przez kmpl500 Nowicjusz (170 p.)

Próbowałem proste działania, np. policzyć ilość rekordów z tabeli magazyns i wyświetlić w postaci zmiennej w widoku strony głównej welcome.blade.php. Nie mogę się uporać z tym błędem:

Call to undefined method App\Blog::dbCheck()

BlogController:

  public function dbCheck()
    {
        $data= DB::table('magazyns') ->count();
        return view('welcome', ['data'=>$data]);

}

webd.php:

Route::get('/', function () {
   return view('welcome')->with('data', App\Blog::dbCheck());
});
komentarz 28 listopada 2020 przez mtk3d Nałogowiec (46,690 p.)

W pliku web.php, powinieneś mieć wywołanie kontrolera, a masz funkcje, która zwraca widok i jako data wrzucasz rezultat funkcji statycznej dbCheck z App\Blog, co zakładam, jest twoim modelem, a nie kontrolerem. Dodatkowo zapewne w klasie Blog nie masz metody dbCheck, stąd błąd który dostałeś mówi Ci, że próbujesz wywołac metodę która nie istnieje.

W web.php wrzuć coś takiego. To spowoduje, że na endpoincie '/', zostanie wywołana metoda dbCheck z kontrolera BlogController i powinno zadziałać:

Route::get('/', [BlogController::class, 'dbCheck']);
komentarz 28 listopada 2020 przez mtk3d Nałogowiec (46,690 p.)
komentarz 28 listopada 2020 przez kmpl500 Nowicjusz (170 p.)
edycja 28 listopada 2020 przez kmpl500
Route::get('/blog', [BlogController::class, 'dbCheck']);

ErrorException

Undefined variable: data (View: C:\xampp\htdocs\laravel7_crud\resources\views\welcome.blade.php)

 

Praktycznie każda zmienna w widoku wywołuje taki komunuikat

komentarz 2 grudnia 2020 przez mtk3d Nałogowiec (46,690 p.)
Wygląda na to, że zmienna z jakiegoś powodu nie jest przekazywana do szablonu, choć wszystko wygląda poprawnie.
Jeśli jesteś w stanie wrzucić swój kod na GitHub, to będę w stanie bardziej pomóc.

Podobne pytania

0 głosów
1 odpowiedź 125 wizyt
pytanie zadane 29 września 2018 w PHP przez ŁukaszD. Użytkownik (540 p.)
0 głosów
0 odpowiedzi 307 wizyt
0 głosów
1 odpowiedź 200 wizyt
pytanie zadane 9 lutego 2018 w PHP przez mi-20 Stary wyjadacz (13,190 p.)

92,579 zapytań

141,432 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...