2012-06-27 2 views
0

Я пытаюсь получить Mailchimp datasource from Springest, и у меня проблемы. Мне пришлось изменить код, чтобы избавиться от ошибок CakePHP. Теперь это происходит без ошибок, но в Mailchimp нет реального запроса API.Как я могу получить источник данных Springest CakePHP для Mailchimp?

Код функции Model, Datasource и Controller точно такой же, как при загрузке с Springest.

код в моем файле database.php является:

public $mailchimp = array(
    'datasource' => 'MailchimpSubscriber', 
    'apiKey' => '<my mailchimp API key>', 
    'defaultListId' => '<my list identifier>', 
    'baseUrl' => 'http://us1.api.mailchimp.com/1.2/' 
); 

Я бегу CakePHP 2.1.0 на XAMPP на моем Macbook Pro.

У кого-нибудь есть ключи?

== UPDATE ==

Я загрузил облегченный из контроллера здесь: https://gist.github.com/3011716

Вот код для моего зрения:

<h2>Subscribe to Mailchimp</h2> 
<?php 
    echo $this->Form->create('People', array('action' => 'subscribe')); 

    echo $this->Form->input('id'); 
    echo $this->Form->input('emailaddress'); 
    echo $this->Form->input('FNAME'); 
    echo $this->Form->input('LNAME'); 
    echo $this->Form->input('GENDER'); 

    echo $this->Form->end('Submit'); 
?> 
+0

См. Мой обновленный ответ. – vindia

ответ

3

Спасибо за попытку нашего Mailchimp Источник данных. Одной из проблем может быть то, что было написано для CakePHP 1.2+ и что в CakePHP многое изменилось с момента выпуска 2.0.

Обратите внимание, что мы по-прежнему используем Cake 1.3 с источником данных и не испытываем никаких ошибок.

Вы проверили migration guide from CakePHP 1.3 to 2.0? Внизу внизу упоминаются изменения, внесенные в DataSources, поэтому ошибка может быть связана с этим.

Мы попытаемся взять его для вращения в Cake 2.0 и посмотреть, что пойдет не так, но в то же время это может быть полезно.

== UPDATE ==

Да, это было CakePHP 2,0, что не совместимо. Я портировал источник данных для поддержки CakePHP 2.0, пожалуйста, проверьте the updated repository.

== Второе обновление ==

Вы сделали одну ошибку, на ваш взгляд: потому, что вы создали форму с $this->Form->create('People', array('action' => 'subscribe')); данные формы будут находиться в $this->data массиве с ключом People, тогда как он должен иметь ключ MailchimpSubscriber. Поскольку в вашем $this->data ключа с этим именем нет, модель MailchimpSubscriber будет игнорировать действие сохранения. Вам нужно будет изменить форму представления таким образом, чтобы представленные данные имели правильное название модели в качестве ключа.

Другое примечание: вы теперь загружаете модель MailchimpSubscriber дважды. Первый раз в массиве $uses в контроллере и во второй раз через метод $this->loadModel() в действии контроллера. Я бы использовал только последний.

+0

Большое спасибо за ответ, vindia. Я не получаю ошибок с обновленными файлами, но моя учетная запись Mailchimp по-прежнему не регистрирует вызовы API. Я загружу код для своего вида и контроллера, чтобы помочь отладки. Возможно, я ошибаюсь. (я также два уведомления: 'Неопределенная собственности: MailchimpSubscriberSource :: $ startQuote' 'Неопределенная собственности: MailchimpSubscriberSource :: $ endQuote' , но я предполагаю, что это на самом деле не влияет на функциональность.) –

+0

я не знайте, что означают эти уведомления. Эти переменные не используются в источнике данных, поэтому я не знаю, откуда они. Я полагаю, что они не являются причиной ошибки. Пожалуйста, покажите мне свое мнение и контроллер. Когда я тестировал новую версию с фиктивными данными (т. Е. Массив prefab '$ this-> data' вместо фактического сообщения формы), он работал нормально: я получил письмо с подтверждением от Mailchimp. – vindia

+0

Отлично! Спасибо за помощь. У меня было несколько проблем с именами, которые вы сказали с моим созданием формы. Теперь все работает хорошо. Большое спасибо за отличную поддержку :) –

Смежные вопросы