Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inny]przekazanie zmiennej w laravel 7
kmpl
post 22.11.2020, 11:37:41
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 4.06.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
viking
post 22.11.2020, 12:17:22
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
kmpl
post 22.11.2020, 12:24:52
Post #3





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 4.06.2006

Ostrzeżenie: (0%)
-----


Ta metoda miała mi zliczyć ilość rekordów z tabeli comp.
Go to the top of the page
+Quote Post
SmokAnalog
post 22.11.2020, 12:26:16
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Poza tym chyba co najmniej trzeci raz zakładasz ten sam temat. Odpowiedziałem Ci już w starszym temacie co zrobić.
Go to the top of the page
+Quote Post
viking
post 22.11.2020, 12:36:29
Post #5





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
kmpl
post 22.11.2020, 12:52:10
Post #6





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 4.06.2006

Ostrzeżenie: (0%)
-----


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.

Go to the top of the page
+Quote Post
viking
post 22.11.2020, 12:54:45
Post #7





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


No a jak się wywołuje publiczną metodę klasy?


--------------------
Go to the top of the page
+Quote Post
SmokAnalog
post 22.11.2020, 14:20:08
Post #8





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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.

Ten post edytował SmokAnalog 22.11.2020, 14:20:55
Go to the top of the page
+Quote Post
viking
post 22.11.2020, 14:33:40
Post #9





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
SmokAnalog
post 22.11.2020, 14:36:41
Post #10





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Wywala błąd, bo napisał niepotrzebną metodę i wbudowane count() się zepsuło tongue.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 12:50