我正在使用laravel構建一個小的API系統。 這是一小段代碼,它搜索用戶,如果存在,則發回一個json響應。當我運行這段代碼時,它應該返回沒有用戶(usercontent爲{}),is_null仍然返回false。我認爲它應該在這種情況下返回true。 我已經計劃在我的代碼中使用它來檢查某些用戶是否存在,但現在它似乎每次都失敗。is_null行爲php laravel 4
我有誤解嗎?有人可以解釋我錯過了什麼嗎?謝謝。
響應代碼:
if($user)
{
return Response::json(array(
'error' => 'true',
'message' => 'User exists.',
'user' => is_null($user),
'usertype' => gettype($user),
'usercontent' => $user
), 400);
}
響應JSON:
{
"error":"true",
"message":"User exists.",
"user":false,
"usertype":"object",
"usercontent":{}
}
編輯:
我做了
var_dump($user);
var_dump(empty($user));
這似乎回到
object(Illuminate\Database\Eloquent\Collection)#201 (1) { ["items":protected]=> array(0) { } }
bool(false)
編輯2:
$user = User::where('mobile_number', '=', Request::get('mobile_number'))
->orwhere('email_id', '=', Request::get('email_id'))
->take(1)
->get();
你爲什麼不'var_dump($ user)'看看它有什麼要說的。我不清楚'json'會出現什麼情況'{}',它可能不僅僅是'null'值。 – brianmearns
您是否嘗試使用'empty($ user)'而不是'is_null($ user)'?另外,'gettype($ user)'的輸出指出'$ user'變量是一個對象,所以它不是'null'。 – tolgamorf
假設這個'json'函數的工作方式類似PHP的內置'json_encode',它看起來像沒有任何公共成員的類的對象也被編碼爲'{}'。 – brianmearns