Pracowałem nad urządzeniem Slim 2 i niedawno zacząłem wdrażać go na serwerze produkcyjnym. Wydaje się, że wszystko działa dobrze. Mogę się zalogować, więc wiem, że łączę się z bazą danych. Rozpoznano, kim jestem zalogowany, ponieważ rozpoznałem uprawnienia, które mam jako tego użytkownika. Mam inny stół z kilkoma wpisami. Kiedy robię ...Może pobierać kolekcję, ale nie filtrować danych w wersji produkcyjnej aplikacji Slim przy użyciu Eloquent
$collection = collect($app->item->where('user_id', $userId)->get());
a potem ...
print_r($collection);
na serwerze produkcyjnym, widzę całą kolekcję tak jak ja na serwerze rozwoju, ale kiedy dodać .. .
$pack = $collection->where('status', 1);
i zamiast drukować kolekcję, spróbuj wydrukować pakiet jak ...
print_r($pack);
tę wiadomość wraca ...
Illuminate\Support\Collection Object ([items:protected] => Array ())
gdzie od wersji rozwojowej uzyskać przefiltrowaną kolekcję jak bym się spodziewał. Jak mogę zmienić kod, aby działał zarówno w środowisku programistycznym, jak i produkcyjnym?
Czy to możliwe, że nie masz żadnych pozycji w kolekcji, gdzie status jest 1 w produkcji, ale masz niektóre ze statusem 1 w rozwoju? – quickshiftin
Czy próbowałeś połączyć funkcję gdzie? Np .: $ app-> item-> where ('user_id', $ userId) -> where ('status', 1) -> get(); I upewnij się, że baza danych ma kilka wierszy ze statusem = 1. – JTheDev
Zweryfikowałem, że istnieją elementy o statusie 1 w db produkcyjnym oraz w kolekcji, która wraca. Próbowałem z powodzeniem powiązać miejsce ("status", 1) podczas tworzenia kolekcji, która działa, ale muszę również odfiltrować w dół, gdzie status = 1 i gdzie status = 0, a ja nie chcę uderzyć w bazę danych więcej niż to konieczne. – user2530671