count (): Der Parameter muss ein Array oder ein Objekt sein, das den Countable-Fehler im Projekt implementiert


Zlatan

Ich arbeite derzeit an einem Laravel-Projekt und folge einem Kurs. Alles lief gut, bis ich meinem Projekt "eloquent-sluggable" hinzufügen musste. Das Paket funktioniert gut, aber jetzt erhalte ich den folgenden Fehler in meinem Projekt:

count (): Der Parameter muss ein Array oder ein Objekt sein, das Countable implementiert

Ich verwende diese Funktion count () aus meiner Sicht:

@if($comments->count() > 0)
   @forech($comments as $comment)
     //displaying single comment data
  @endforeach
@endif

Meine Frage ist nun, warum dieser Fehler jetzt angezeigt wird. Könnte es sein, dass ich in meinem Projekt ein "Composer-Update" durchgeführt habe und meine PHP-Version auf 7.2 aktualisiert wurde und in dieser Version ein count () -Problem vorliegt? Ich vermute, das "> =" - Zeichen hat meine PHP-Version geändert. Meine aktuelle Laravel-Projektkonfiguration:

"php": ">=5.5.9",
    "laravel/framework": "5.2.*"

Wenn ich jedoch "php -v" in meinem Projekt ausführe, zeigt dies, dass meine PHP-Version jetzt 7.2 ist. Gibt es eine Möglichkeit, meine PHP-Version herunterzustufen, ohne meine Projektdateien zu verlieren? Jede Hilfe geschätzt.

Zlatan

Die einzige Möglichkeit, dies zu umgehen, besteht darin, die Fehlerzeile 1185 in "vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Builder.php" mit folgenden Elementen zu bearbeiten:

$originalWhereCount = is_array($query->wheres) ? count($query->wheres) : 0;

Ich weiß nicht, ob dies für zukünftige Projekte schlecht ist, aber nur so konnte ich mein Projekt zum Laufen bringen.

Verwandte Artikel