Вызов функции-члена getDOM () для необъекта - PullRequest
1 голос
/ 28 июля 2010

Я пытаюсь создать функцию PHP, которая добавляет событие в календарь Google.Кажется, он правильно строит объект, но выдает ошибку «Вызов функции-члена getDOM () для необъекта в FeedEntryParent.php» при попытке добавить событие.Вот сокращенный класс только с конструктором и функцией, которая добавляет событие:

<code>class GCal_datasource {
    private $user = 'xxxxxxx';
    private $pass = 'xxxxxxxxx';
    private $client;
    private $gdata_cal;

    private $calendar; 
    private $visibility;

        public function __construct($settings = NULL){
        session_start();        
        require_once 'Zend/Loader.php';     
        Zend_Loader::loadClass('Zend_Gdata');
        Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
        Zend_Loader::loadClass('Zend_Gdata_HttpClient');
        Zend_Loader::loadClass('Zend_Gdata_Calendar');

        if($settings == NULL){
            $settings = array();
            $settings['calendar'] = 'default';
            $settings['visibility'] = 'full';
        }       

        $this->calendar = $settings['calendar']; 
        $this->visibility = $settings['visibility'];    
        $this->client = $this->get_ClientLoginHttpClient();
        $this->gdata_cal = new Zend_Gdata_Calendar($this->client);      
    }

    public function create_event($fields){
        $gc = $this->gdata_cal;
        $new_event = $this->gdata_cal->newEventEntry();
        echo '<pre>';
        print_r($fields);
        echo '
';if (isset ($ fields ['quick_add'])) {$ new_event-> content = $ gc-> newContent ($ fields ['quick_add']);$ new_event-> quickAdd = $ gc-> newQuickAdd (true);} else if (isset ($ fields ['title']) && isset ($ fields ['when'])) {$ new_event-> title = $ fields ['title'];$ where = $ gc-> newWhere ($ fields ['where']);$ new_event-> где = массив ($ где);$ desc = $ gc-> newContent ($ fields ['desc']);$ new_event-> content = $ desc;$ new_event-> content-> type = 'text';$ new_event-> when = self :: build_when_array ($ fields ['when']);if (isset ($ fields ['web_content'])) {$ new_event-> link = web_event_array ($ fields ['web_content']);}} echo '
';
        print_r($new_event);
        echo '
';$ GC-> insertEvent ($ new_event);вернуть $ create_event-> id-> text;}}

Ошибка (я полагаю) состоит в том, как я вызываю insertEvent () в конце кода.Единственная причина, по которой я думаю, это то, что я получаю ошибку только тогда, когда она существует, и если я удаляю ее, эхо над ней выводит объект Event, как и предполагалось.

Любой, кто лучше разбирается в PHP API Goggle, может мне помочь, я был бы очень признателен.

Ответы [ 2 ]

1 голос
/ 06 июня 2013

У меня была эта проблема.Я думаю, что вы должны изменить строку

$new_event->title = $fields['title'];

на

$new_event->title = $service->newTitle($fields['title']);
0 голосов
/ 28 июля 2010

Call to a member function getDOM() on a non-object in FeedEntryParent.php означает, что где-то в файле с именем «FeedEntryParent.php» вы вызвали getDOM() для переменной, и эта переменная не является объектом и поэтому не имеет метода getDOM().

Нигде в коде, который вы опубликовали, нет вызова getDOM (), поэтому ошибка не выдается в опубликованном коде.

Отслеживайте этот вызов getDOM ().Ошибка обычно дает вам номер строки.Посмотрите, для какой переменной вы вызываете метод.Эта переменная не является объектом.Найдите, где установлена ​​эта переменная - возможно, именно в этом ваша проблема.

...