2014-12-15 7 views
9

Próbuję uzyskać wartości z bazy danych za pomocą następującego koduNie można uzyskać wartości z bazy danych w PHP

$request = Registrationrequest::where('course_id', $id) 
            ->where('user_id', Auth::user()->id) 
            ->where('registered', true)->count(); 

Używam laravel. Mam wiersz z course_id = 4, user_id=3 i registered=true. Kiedy I var_dump każdej wartości oddzielnie, potwierdzam go. Ale kiedy używam tego warunku WHERE razem, ja nie dostaję wartości liczone jako 1, zamiast coraz 0.

mam kolejne zapytanie gdzie używam

$request = Registrationrequest::where('course_id', $id) 
           ->where('user_id', Auth::user()->id) 
           ->where('registered', false)->first(); 

Działa to idealny, gdy wartość jest zarejestrowany fałszywy.

Czy ktoś może mi powiedzieć, gdzie się mylę?

+0

Co to jest typ kolumny "zarejestrowanej" (w bazie danych)? –

+0

@ SverriM.Olsen It's Binary – user1012181

+0

Czy to działa, jeśli ustawisz go na '1' zamiast" true', a '0' zamiast" false'? –

Odpowiedz

4

Zmiana true z 1 i z 0.

+0

Normalnie true i false powinny działać. Prawda działa. Ale nie fałszerstwo. W każdym razie zmiana na 1 i 0 działa. – user1012181

+2

Jest tak, ponieważ są one rzucane na ciąg. Kiedy wartości logiczne są rzutowane na łańcuch, są przekształcane w: 'true' =' '1'' i 'false' ='' ''(pusty ciąg znaków). –

0

Zmieniono wszystkich false i true z insert, delete i select zapytaniami.

$request = Registrationrequest::where('course_id', $id) 
           ->where('user_id', Auth::user()->id) 
           ->where('registered', 0)->first();