如何根据条件显示消息 - 使用 Laravel

这是我的控制器代码:


 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)) 但没有显示正确的错误消息。


哔哔one
浏览 118回答 3
3回答

守着一只汪

在这一行之后:$user =User::find($user_id);你可以添加这样的东西:if(!$user){    return response()->json(["message"=>"User not found"]);}

一只甜甜圈

问题是你试图获得 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);}

largeQ

如果你想显示用户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']);    }   }
打开App,查看更多内容
随时随地看视频慕课网APP