2014-12-15 12 views
9

Sto cercando di ottenere un valore dal database utilizzando il seguente codiceImpossibile ottenere il valore dal database in PHP

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

sto usando laravel. Ho una riga con course_id = 4, user_id=3 e registered=true. Quando var_dump ogni valore separatamente, lo sto confermando. Ma quando uso questa condizione dove insieme, non sto ottenendo il valore di conteggio da 1, invece ottenere 0.

ho un'altra query in cui io uso

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

Questo funziona perfettamente quando il valore registrato è falsa.

Qualcuno può dirmi dove sbaglio?

+0

Qual è il tipo di colonna "registrato" (nel database)? –

+0

@ SverriM.Olsen È binario – user1012181

+0

Funziona se lo si imposta su '1' anziché' true', e '0' invece di' false'? –

risposta

4

Modifica true con 1 e false con 0.

+0

Normalmente true e false dovrebbero funzionare. Vero sta funzionando. Ma non è un caso falso. Ad ogni modo, cambiandolo in 1 e 0 funziona. – user1012181

+2

È perché vengono trasmessi alla stringa. Quando i valori booleani vengono convertiti in stringa vengono convertiti in: 'true' =' '1'' e 'false' ='' ''(stringa vuota). –

0

cambiato tutto il false e true dalle insert, delete e select query.

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