这是我的控制器代码:
public function getGroupAgainstMember(Request $request)
{
$user_id = $request->input('user_id');
$user =User::find($user_id);
$groupDetails=$user->groups; // Trying to get property of non-object
if (empty($groupDetails)) {
$resultArray = ['status' => false, 'message' => 'Group details.', 'data' => []];
return \Illuminate\Support\Facades\Response::json($resultArray, 200);
}
if ($groupDetails)
$resultArray = ['status' => true, 'message' => 'Group & Members details!', 'groups' => $groupDetails];
else
$resultArray = ['status' => false, 'message' => 'Group details not found.', 'data' => []];
return \Illuminate\Support\Facades\Response::json($resultArray, 200);
}
我正在获取针对用户ID的记录,如果用户ID存在,它将向我显示针对该用户ID的数据,如果我输入随机用户ID(如1233),则表示尝试获取非对象的属性,我也提到了此错误我的代码来自哪里。
如果我输入1234之类的任何ID,我想显示一条消息,指出用户ID不存在,我也设置了条件if(empty($$ groupDetails)),但未显示正确的错误消息。
我们将非常感谢您的帮助!
答案 0 :(得分:0)
问题是您试图获取null属性。当用户不存在时,$user
不是对象,也没有任何道具
$user = User::find($user_id);
$groupDetails = ($user) ? $user->groups : collect([]); // if user exists get groups, if not - empty collection
我要显示一条用户ID不存在的消息
那么您可以那样做:
$user = User::find($user_id);
if (null === $user) { // or just if (!$user)
$resultArray = ['status' => false, 'message' => 'User does not exist.', 'data' => []];
return \Illuminate\Support\Facades\Response::json($resultArray, 200);
}
答案 1 :(得分:0)
此行之后:
$user =User::find($user_id);
您可以添加以下内容:
if(!$user){
return response()->json(["message"=>"User not found"]);
}
答案 2 :(得分:0)
如果要显示一条消息,提示用户ID不存在
public function getGroupAgainstMember(Request $request){
$post = $request->all();
$user = User::find($post['user_id']);
if($user){
// your code
} else {
return response()->json(['status' => false, 'message' => 'User not found']);
}
}