Как показать сообщение в зависимости от состояния - используя laravel - PullRequest
0 голосов
/ 19 мая 2019

Вот мой код контроллера:

 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);
}

Я выбираю записи по идентификатору пользователя, и если идентификатор пользователя существует, он показывает мне данные по этому идентификатору пользователя, и если я ввожу случайный идентификатор пользователя, такой как 1233, он говоритПытаясь получить свойство необъекта, я также упомянул эту ошибку в своем коде, откуда она поступает.

Я хочу отобразить сообщение о том, что идентификатор пользователя не существует, если я введу любой идентификатор, например, 1234, который у меня есть.поставить условие if (пусто ($$ groupDetails)), но не отображать правильное сообщение об ошибке.

Ваша помощь будет высоко оценена!

Ответы [ 3 ]

0 голосов
/ 19 мая 2019

После этой строки:

$user =User::find($user_id);

вы можете добавить что-то вроде этого:

if(!$user){
    return response()->json(["message"=>"User not found"]);
}
0 голосов
/ 19 мая 2019

Если вы хотите отобразить сообщение о том, что идентификатор пользователя не существует

 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']);
    }  
 }
0 голосов
/ 19 мая 2019

проблема в том, что вы пытаетесь получить свойство null. когда пользователь не существует, $user не является объектом и не имеет реквизита

$user = User::find($user_id);
$groupDetails = ($user) ? $user->groups : collect([]); // if user exists get groups, if not - empty collection

Я хочу отобразить сообщение о том, что идентификатор пользователя не существует

тогда вы можете просто сделать так:

$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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...