Я пытаюсь сохранить спорт, который пользователь понравился на Facebook в базе данных. Этот код является частью моего входа в Facebook, я использую laravel.Facebook php sdk/save users sports/array to string conversion
$ me содержит все данные пользователя, которые я получаю от Facebook.
if (array_key_exists('sports', $me)){
$test = $me['sports'];
$json = strval($test); PROBLEM HERE
$data = json_decode($json, true);
$sports = array();
foreach ($data as $item) {
$sports[] = $item['name'];
}
$user->fb_sports = $sports;
}
Моя проблема в том, что я получаю массив для преобразования строк. Я пытаюсь преобразовать содержимое переменной $ test в строку для следующего кода для правильной работы.
Однако я действительно не знаю, что делать.
$me['sports']
возвращает
[{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}]
Однако для моего кода, чтобы работать должным образом, я бы нужно, чтобы вернуть эту (обратите внимание на 'и'):
'[{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}]'
Есть ли способ исправить это? Я просто хочу сохранить эти виды спорта в базе данных. Может быть, я выбрал совершенно неправильный путь здесь?
Любая помощь будет высоко оценена.
Спасибо.
EDIT:
Когда я пытаюсь это:
$sports = array();
foreach($me['sports'] as $sport){
// save the name i.e.
$sports[] = $sport['name'];
}
//saving array
$user->fb_sports = $sports;
я получаю это:
Вы не можете получить это (новое) сообщение об ошибке из кода, который вы указали ... 'preg_replace' там даже не используется. – CBroe