Skocz do zawartości
Pecetowicz Forum komputerowe

Non-static method cannot be called | Invision Community


Przejdź do rozwiązania Rozwiązane przez aXenDev,

Rekomendowane odpowiedzi

  • Premium

Cześć. Napisałem aplikację do Invision Community 4 lecz po wejściu do zakładki w panelu administratora wyświetla się błąd:

"Non-static method IPS\mtasa\_Application::dbConnect() cannot be called statically".

W lokalizacji applications/mtasa/modules/admin/adminpanel/players.php robię odwołanie do applications/mtasa/Application.php, które wygląda tak: 

$database = \IPS\mtasa\Application::dbConnect($settings->xdbhost, $settings->xdbuser, $settings->xdbpass, $settings->xdbname);
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Premium

W pliku Application.php znajduje się funkcja dbConnect:

public function dbConnect($host, $username, $password, $name)
{
}

Super. Nawet nie zauważyłem że od tej wersji już jest to wymagane. Dzięki problem rozwiązany.

Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Ekspert

Skoro tak robisz to kod powinien wyglądać tak:

$database = \IPS\Application::load('mtasa')->dbConnect($settings->xdbhost, $settings->xdbuser, $settings->xdbpass, $settings->xdbname);
  • Lubię to! 2
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Premium
7 godzin temu, aXenDev napisał:

Skoro tak robisz to kod powinien wyglądać tak:


$database = \IPS\Application::load('mtasa')->dbConnect($settings->xdbhost, $settings->xdbuser, $settings->xdbpass, $settings->xdbname);

Poprzedni kod działa i nie wiem czy jest sens zamieniać kodu na Twój. Jest jakaś różnica w działaniu obu kodów?

Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Ekspert

To zależy czy chcesz mieć funkcję statyczną czy nie.

Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Premium
35 minut temu, aXenDev napisał:

To zależy czy chcesz mieć funkcję statyczną czy nie.

Użyłem mojej starej metody a do funkcji dbConnect dodałem frazę static i działa bez problemu

Odnośnik do odpowiedzi
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...