Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inny]przekazanie zmiennej w laravel 7
Forum PHP.pl > Forum > PHP > Frameworki
kmpl
Witam,


Próbuję w Laravelu przekazać zmienną $computerCount z modelu Comp do widoku strony głównej welcome.blade.php.
Model:

  1. public function count()
  2. {
  3.  
  4. Comp::count()
  5. $compCount = Comp::count();


W routes/web.php

  1. Route::get('/', function () {
  2. $compCount = Comp::count();
  3. return view('welcome')->with('compCount', App\Comp::count());
  4.  
  5. });



welcome.blade.php:

  1. {{ $compCount }}


Jest jednak komunikat: Non-static method App\Comp::count() should not be called statically.
Coś robię źle, ale nie mam pomysłu co.
viking
Zrób to raz a porządnie. Tutaj wykonałeś coś (i jak ci php podpowiada nie jest to metoda statyczna) , nigdzie tego nie użyłeś i znowu to samo wywołanie. Po co robisz jakieś swoje count które nie robi nic więcej poza metodą count (statyczną) laravela.
kmpl
Ta metoda miała mi zliczyć ilość rekordów z tabeli comp.
SmokAnalog
Poza tym chyba co najmniej trzeci raz zakładasz ten sam temat. Odpowiedziałem Ci już w starszym temacie co zrobić.
viking
Doucz się trochę podstaw języka, poczytaj co to metody statyczne. Już poza tym że faktycznie dostałeś wcześniej odpowiedź to problem nie ma nic wspólnego z laravel.
kmpl
Wcześniej zliczyłem sobie ilość rekordów z tabeli osoby wywołując w widoku strony głównej (welcome.blade.php) kod:
  1. {{ $osobaCount }}

oraz Routing (web.php):

  1. Route::get('/', function () {
  2. return view('welcome')->with('osobaCount', App\Osoba::count());
  3. });


I tylko tak działa. Bez udziału kontrolera. Problem jest tylko kiedy próbuję to samo uzyskać z innej tabeli comp.

viking
No a jak się wywołuje publiczną metodę klasy?
SmokAnalog
Viking, w Laravelu jest taka magiczna warstwa, która pozwala wywoływać metody jak metody statyczne, więc to jest dobrze.

Kmpl, poczytaj o withCount(), bo widzę że problem trochę ewoluował nerdsmiley.png

EDIT

Żeby była jasność, definiowanie własnej metody count() oczywiście nie ma sensu.
viking
No nie jest dobrze o czym nawet PHP wyraźnie mówi bo zdefiniował public function count() {} w modelu.

A ta magiczna warstwa to cecha która sprowadza się do
  1. return $object->{$method}(...$parameters);
w bloku try/catch.
SmokAnalog
Wywala błąd, bo napisał niepotrzebną metodę i wbudowane count() się zepsuło tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.