2016-05-18 4 views
2

Я пытаюсь извлечь значения JSON из возврата ключа пользователя «JWTAuth», но не могу понять, как обращаться к внутренним ключам с помощью php. У меня есть следующий код:Как получить доступ к отдельным значениям из данных JSTAuth JSON

if(!$user = JWTAuth::parseToken()->authenticate()){ 
     abort(401); 
    } 

    else{ 
     return response()->json(compact('user')); 

    } 
} 

И когда в том числе соответствующего маркера в заголовке, я получить информацию о пользователе

{"user":{"id":2,"organization_name":"test corp","user_type":"administrator","created_at":"2016-05-13 17:26:20","updated_at":"2016-05-13 17:26:20","user_firstname":"Requester","user_lastname":"chester","user_emailaddress":"[email protected]","remember_token":null,"user_id":"uid-7e3a0e15-c97b-44b1-885d-4370f4d1"}} 

Однако, я не могу понять способ решения отдельных значений ключи внутри ключа «пользователь». Как я могу получить значение слова «user_firstname»?

Спасибо.

UPDATE

Использование функции Log :: Info в Laravel регистрировать данные в локальный журнал. Следующий:

$json = response()->json(compact('user')); 
$arr = json_decode($json, true); 
Log::Info(var_dump($arr)); 
Log::Info($arr["user"]["user_firstname"]); 

возвращает NULL как для дампа вара и многомерного вызова массива

ответ

2

Вы можете узнать о json_encode и json_decode для преобразования объектов json в массив и наоборот. См. Здесь инструкцию - http://php.net/manual/en/function.json-decode.php

$array = json_decode($json, true); 
var_dump($array); 
echo $array["user"]["user_firstname"]; 
+0

См. Вышеупомянутое обновление. Спасибо – xec86

+0

Можете ли вы попробовать Log :: info ('User logging in', ['id' => $ arr ['user'] ['id']]); затем проверьте хранилище/журналы/*, где будет записываться журнал. –

+0

Это решение. ['oid' => $ user-> organization_id] возвращает идентификатор организации указанного пользователя. Спасибо. – xec86

0
$json = '{"user":{"id":2,"organization_name":"test corp","user_type":"administrator","created_at":"2016-05-13 17:26:20","updated_at":"2016-05-13 17:26:20","user_firstname":"Requester","user_lastname":"chester","user_emailaddress":"[email protected]","remember_token":null,"user_id":"uid-7e3a0e15-c97b-44b1-885d-4370f4d1"}}'; 

$arr = json_decode($json, true); //Converts JSON string into array 

echo "<pre>"; 
print_r($arr); 
echo "<pre>"; 

Вы можете получить доступ к значению массива:

echo $arr["user"]["user_firstname"]; //Prints Requester 
+0

См. Вышеупомянутое обновление. Спасибо – xec86

Смежные вопросы