我正试图让Mailchimp datasource from Springest正常工作,而且我遇到了问题。我不得不修改一些代码来摆脱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。
有人有任何线索吗?
== 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 :(得分:3)
感谢您试用我们的Mailchimp数据源。其中一个问题可能是为CakePHP 1.2+编写的,自2.0版本以来,CakePHP中的许多内容都发生了变化。
请注意,我们仍然将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
数组中,其中包含键{{1}它应该有键People
。因为MailchimpSubscriber
中没有具有该名称的密钥,MailchimpSubscriber模型将忽略保存操作。您需要更改提交表单,以便提交的数据具有正确的型号名称作为密钥。
另一个注意事项:您现在正在加载$this->data
模型两次。第一次在控制器中的MailchimpSubscriber
数组中,第二次通过控制器操作中的$uses
方法。我只会使用后者。