简体   繁体   English

如何在 PHP 或 Laravel 中访问 JsonResponse 对象内的属性值?

[英]How to access a property value inside JsonResponse Object in PHP or Laravel?

I'm doing a POST using Ajax and my Server is getting the data just fine.我正在使用 Ajax 进行 POST,而我的服务器正在获取数据。 However, I'm struggling to access the value the user sent.但是,我正在努力访问用户发送的值。 In simple words how can I access the value of "user" (tom) ?.简而言之,我如何访问“用户”(tom)的值? Anyone could get me on the right track please.任何人都可以让我走上正轨。 Thank you in advance.先感谢您。 Here's my JsonResponse object:这是我的 JsonResponse 对象:

[2016-10-22 05:10:49] local.INFO: From Ajax: Illuminate\Http\JsonResponse Object
(
[data:protected] => {"user":"Tom","_token":"uRZJBVHH3worhjX4Ul6WlnJC1JYh3EVMNWob7Azr"}
[callback:protected] => 
[encodingOptions:protected] => 0
[headers] => Symfony\Component\HttpFoundation\ResponseHeaderBag Object
    (
        [computedCacheControl:protected] => Array
            (
                [no-cache] => 1
            )

        [cookies:protected] => Array
            (
            )

        [headerNames:protected] => Array
            (
                [cache-control] => Cache-Control
                [content-type] => Content-Type
            )

        [headers:protected] => Array
            (
                [cache-control] => Array
                    (
                        [0] => no-cache
                    )

                [content-type] => Array
                    (
                        [0] => application/json
                    )

            )

        [cacheControl:protected] => Array
            (
            )

    )

[content:protected] =>     {"user":"Tom","_token":"uRZJBVHH3worhjX4Ul6WlnJC1JYh3EVMNWob7Azr"}
[version:protected] => 1.0
[statusCode:protected] => 200
[statusText:protected] => OK
[charset:protected] => 
)

Using Laravel the data can also be accessed using illuminate getData() method.使用 Laravel 也可以使用 light getData()方法访问数据。

$someVar->getData();

https://laravel.com/api/5.3/Illuminate/Http/JsonResponse.html#method_getData https://laravel.com/api/5.3/Illuminate/Http/JsonResponse.html#method_getData

I solved my issue and I'm going to share it in case someone needs it.我解决了我的问题,如果有人需要,我将分享它。 So the way I was getting the JsonObjec was by doing this in Routes.php:所以我得到 JsonObjec 的方法是在 Routes.php 中这样做:

Route::post('/register', function(){
if(Request::ajax()){
    Log::info('From Ajax: ' . print_r(Response::json(Request::all()), true));
    
    return var_dump(Response::json(Request::all()));
} 
});

But instead I did this to actually access the value of user (Tom).但相反,我这样做是为了实际访问用户 (Tom) 的值。

$somevar = (Request::all());
Log::info('From Ajax: ' . print_r($somevar["user"], true));

This solve my issue.这解决了我的问题。 Hope it helps anyone out there!希望它可以帮助那里的任何人!

With Laravel you can access to JSON data same way as regular variables.使用 Laravel,您可以像访问常规变量一样访问 JSON 数据。 In your case you need something like:在您的情况下,您需要以下内容:

$username = $request->get('user');

hope not 'too late to the party'.希望不要“来晚了”。 Have you tried calling the function getData() before accessing the property.您是否尝试在访问属性之前调用函数 getData()。 ie $jsonObject->getData()->firstName;即 $jsonObject->getData()->firstName;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM