0

我正在尝试从 Springest 获取 Mailchimp 数据源,但我遇到了问题。我不得不修改一些代码以消除 CakePHP 错误。现在它没有错误地发生,但没有向 Mailchimp 发出实际的 API 请求。

模型、数据源和控制器功能代码与从 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 数据源。其中一个问题可能是它是为 CakePHP 1.2+ 编写的,并且自 2.0 版本以来,CakePHP 中发生了很多变化。

请注意,我们仍在使用 Cake 1.3 和数据源,并且没有遇到任何错误。

您是否查看了从 CakePHP 1.3 到 2.0 的迁移指南?在底部有一些提到对 DataSources 所做的更改,因此错误可能与此有关。

我们将尝试在 Cake 2.0 中试一试,看看出了什么问题,但与此同时,这可能会有所帮助。

==更新==

是的,不兼容的是 CakePHP 2.0。我已移植数据源以支持 CakePHP 2.0,请检查更新的存储库

== 第二次更新==

您在视图中犯了一个错误:因为您已经创建了表单,表单$this->Form->create('People', array('action' => 'subscribe'));的数据将在$this->data带有 key 的数组中,People而它应该有 key MailchimpSubscriber$this->data因为MailchimpSubscriber 模型中没有具有该名称的键将忽略保存操作。您需要更改提交表单,以使提交的数据具有正确的模型名称作为键。

另一个注意事项:您现在加载MailchimpSubscriber模型两次。第一次在$uses控制器中的数组中,第二次通过$this->loadModel()控制器动作中的方法。我只会使用后者。

于 2012-06-27T14:17:09.247 回答