2016-05-18 7 views
2

JWTAuthトークン「ユーザー」キーの返却からJSON値を抽出しようとしていますが、PHPを使用して内部キーのアドレス指定方法を見つけることができません。私は、次のコードを持っている:JWTAuth 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」キーの値を取得するにはどうすればよいですか?

ありがとうございました。データをローカルログをログに記録するlaravel内のログ::情報機能を使用してUPDATE

。次

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

のvarダンプの両方にNULLを返し、多次元配列のコール

答えて

2

をあなたはjson_encodeについて学びたいかもしれませんし、 jsonオブジェクトを配列に変換するjson_decode(逆も同様)こちらのマニュアルをご覧ください - 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( 'ユーザーログイン'、['id' => $ arr ['user'] ['id']]);ログが記録される場所のstorage/logs/*を確認してください。 –

+0

これが解決策でした。 ['oid' => $ user-> organization_id]指定されたユーザーの組織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

関連する問題