我正在使用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