Я пытаюсь обновить сайт со старого API Eventbrite на новый. Этот PHP-код отлично работал на старом.
Я пытаюсь сохранить события из Eventbrite в разделе событий на нашем собственном сайте.
Я получаю событие от eventbrite без проблем:
$json = file_get_contents('https://www.eventbriteapi.com/v3/events/'.$id.'?token=evbsecrettoken');
$event = json_decode($json);
Затем я пытаюсь сохранить его на нашем сайте, используя функцию сохранения, которая, как мне известно, работает из нашего бэкэнда.
$eventId = $this->config->DS->saveEvent('new',
$event->name->text,
$event->description,
$countryId,
$cityId,
$venueId,
$event->start->local,
'',
0,
0,
$image,
$_SESSION['admin']['user_id']);
Функция saveEvent выглядит так
public function saveEvent($id, $title, $body, $country, $city, $venue, $date, $cost, $ticker, $active, $image, $userId) {
if($id == 'new'){
$slug = $this->getAvailableSlugByTable('event', $title);
$eventId = $this->addEvent($userId, $country, $city, $venue, $title, $date, $cost, $body, $image, $slug, $ticker, $active);
return $eventId;
AddEvent выглядит как
public function addEvent($userId, $country, $city, $venue, $title, $date, $cost, $text, $image, $slug, $ticker = 0, $active = 0){
$this->dbHandler->DbQuery('INSERT event SET user_id = ?, country_id = ?, city_id = ?, venue_id = ?, event_title = ?, event_date = ?, event_cost = ?, event_text = ?, event_image = ?, event_slug = ?, event_ticker = ?, event_active = ?', Array($userId, $country, $city, $venue, $title, $date, $cost, $text, $image, $slug, $ticker, $active));
$eventId = $this->dbHandler->lastInsertId();
// add ticker if needed
if($ticker){
$this->addTicker('event', $title, $slug, $text, $image, 'events', $eventId, $userId, 0);
}
return $eventId;
}
Но я получаю ошибку «Catchable fatal error: объект класса stdClass не может быть преобразован в строку», и трассировка стека выглядит следующим образом:
[03-Feb-2016 21:11:13 UTC] PHP 7. Admin_Data_Source->saveEvent() /home/ubuntu/workspace/admin/modules/eventbrite.php:94
[03-Feb-2016 21:11:13 UTC] PHP 8. Site_Data_Source->addEvent() /home/ubuntu/workspace/lib/persistence/adminDataSource.php:368
[03-Feb-2016 21:11:13 UTC] PHP 9. DBhandler->DbQuery() /home/ubuntu/workspace/lib/persistence/siteDataSource.php:553
[03-Feb-2016 21:11:13 UTC] PHP 10. PDOStatement->execute() /home/ubuntu/workspace/lib/dbHandler/dbHandler.php:88
Есть идеи, что я делаю не так? Я не знаю, в какой класс обращаются. Любая помощь высоко ценится, спасибо!
Кажется, что одна из ваших переменных не является строкой.
Внутри функции addEvent я бы сделал var_dump
на каждый параметр функции и проверьте его тип. Возможно, изображение — это объект, а не строка, как вы ожидаете.
Других решений пока нет …