count (): Der Parameter muss ein Array oder ein Objekt sein, das den Countable-Fehler im Projekt implementiert
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.
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.