1

我试图从 Laravel 的 Facebook 的位置数组对象中分离出城市和州。在我这样做之前,我只是尝试了类似于我在 Oauth2 控制器中尝试的操作:

$citystate = $user['location'];
$citystate2 = $citystate['name'];
$split = explode(", ", $citystate2);
$city = $split[0];
$state = $split[1]; 

在提供程序文件 Facebook.php 中,我有这个:

'location' => $user->location

但是,当我运行它时,我得到了错误:

Use of undefined constant name - assumed 'name'

所以,我的问题是,如何访问位置数组对象的“名称”部分。感谢您的帮助!

4

1 回答 1

0

首先,你应该json_decode(如果它是一个 json 字符串)喜欢

$userArray  = json_decode($user, true);

所以,你可以像数组一样使用它

$citystate = $userArray['location'];

您还可以检查是否$user已经是一个数组或没有使用

if(is_array($user) && array_key_exists('location', $user)) {
    // ...
    $citystate = $user['location'];
    // ...
}

然后你会得到一个这样的数组

array (size=2)
 'id' => string 'xxx' (length=15) // xxx = digits
 'name' => string 'Sylhet' (length=6)

更新: $user['location']是一个对象:

object(stdClass)#180 (2) { ["id"]=> string(15) "114952118516947" ["name"]=> string(25) "San Francisco, California" }

所以,它应该是:

$citystate = $user['location'];
$citystate->name;
于 2013-07-06T03:04:04.793 回答