Symfony 4 - JsonResponse returns 一个非空对象为空
Symfony 4 - JsonResponse returns a non-empty object as empty
我正在尝试 return 在 Symfony 中 API 请求(使用 Postman)的结果。
这是我的相关控制器代码:
/**
* @Route("/apis/login", name="api_login")
*/
public function login(Request $request, UserRepository $userRepository): Response
{
$cin = json_decode($request->getContent(),true)["cin"];
$password = json_decode($request->getContent(),true)["password"];
$user = $userRepository->findOneBy(['cin'=>$cin, 'password'=>$password]);
if($user!=null){
return new JsonResponse(json_encode($user));
}else{
return new JsonResponse("false");
}
}
这是请求正文:
然而,这是我得到的结果:
在我的代码中,如果我将这一行 return new JsonResponse(json_encode($user));
更改为这一行 return new JsonResponse(serialize($user));
,我会得到:
证明returned对象不为空。知道如何解决这个问题吗?
我修好了!我刚刚将用户对象转换为数组。所以,我改变了我的代码:
/**
* @Route("/apis/login", name="api_login")
*/
public function login(Request $request, UserRepository $userRepository): Response
{
$cin = json_decode($request->getContent(),true)["cin"];
$password = json_decode($request->getContent(),true)["password"];
$user = $userRepository->findOneBy(['cin'=>$cin, 'password'=>$password]);
if($user!=null){
$arr = (array) $user;
foreach($arr as $k=>$v){
$newkey = substr($k,17);
$arr[$newkey] = $arr[$k];
unset($arr[$k]);
}
return new JsonResponse($arr);
}else{
return new JsonResponse("false");
}
}
我正在尝试 return 在 Symfony 中 API 请求(使用 Postman)的结果。
这是我的相关控制器代码:
/**
* @Route("/apis/login", name="api_login")
*/
public function login(Request $request, UserRepository $userRepository): Response
{
$cin = json_decode($request->getContent(),true)["cin"];
$password = json_decode($request->getContent(),true)["password"];
$user = $userRepository->findOneBy(['cin'=>$cin, 'password'=>$password]);
if($user!=null){
return new JsonResponse(json_encode($user));
}else{
return new JsonResponse("false");
}
}
这是请求正文:
然而,这是我得到的结果:
在我的代码中,如果我将这一行 return new JsonResponse(json_encode($user));
更改为这一行 return new JsonResponse(serialize($user));
,我会得到:
证明returned对象不为空。知道如何解决这个问题吗?
我修好了!我刚刚将用户对象转换为数组。所以,我改变了我的代码:
/**
* @Route("/apis/login", name="api_login")
*/
public function login(Request $request, UserRepository $userRepository): Response
{
$cin = json_decode($request->getContent(),true)["cin"];
$password = json_decode($request->getContent(),true)["password"];
$user = $userRepository->findOneBy(['cin'=>$cin, 'password'=>$password]);
if($user!=null){
$arr = (array) $user;
foreach($arr as $k=>$v){
$newkey = substr($k,17);
$arr[$newkey] = $arr[$k];
unset($arr[$k]);
}
return new JsonResponse($arr);
}else{
return new JsonResponse("false");
}
}