0

Springest から Mailchimp データソースを取得しようとしていますが、問題が発生しています。CakePHP のエラーを取り除くために、いくつかのコードを変更する必要がありました。今ではエラーは発生しませんが、Mailchimp に対して実際に API リクエストが行われることはありません。

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/'
);

Macbook Pro の XAMPP で CakePHP 2.1.0 を実行しています。

手がかりを得た人はいますか?

==更新==

ここに削除されたコントローラーをアップロードしました: 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');
?>
4

1 に答える 1

3

Mailchimpデータソースをお試しいただきありがとうございます。問題の1つは、CakePHP 1.2以降用に作成されていることと、2.0リリース以降CakePHPで多くの変更が加えられていることです。

データソースでCake1.3を引き続き使用しており、エラーはまったく発生しないことに注意してください。

CakePHP 1.3から2.0への移行ガイドをチェックしましたか?一番下にデータソースに加えられた変更についての言及があるので、エラーはそれに関連している可能性があります。

Cake 2.0で試してみて、何がうまくいかないかを確認しますが、それまでの間、これは役立つかもしれません。

==更新==

うん、互換性がなかったのはCakePHP2.0だった。CakePHP2.0をサポートするためにデータソースを移植しました。更新されたリポジトリを確認してください。

==2回目の更新==

ビューで1つのエラーが発生しました。フォームのデータを使用してフォームを作成したため、フォーム$this->Form->create('People', array('action' => 'subscribe'));のデータは$this->dataキー付きの配列に含まれますPeopleが、キーは必要MailchimpSubscriberです。$this->dataMailchimpSubscriberモデルにはその名前のキーがないため、保存アクションは無視されます。送信されたデータがキーとして正しいモデル名を持つように、送信フォームを変更する必要があります。

別の注意:MailchimpSubscriberモデルを2回ロードしています。1回目$usesはコントローラーの配列で、2回目$this->loadModel()はコントローラーアクションのメソッドを使用します。私は後者のみを使用します。

于 2012-06-27T14:17:09.247 に答える