【问题标题】:What is the proper way to use the Constant Contact PHP Wrapper in a CakePHP project在 CakePHP 项目中使用 Constant Contact PHP Wrapper 的正确方法是什么
【发布时间】:2011-05-20 04:33:08
【问题描述】:

我正在扩展现有的 CakePHP 项目以利用 Constant Contact API 和 php 包装文件:ctctWrapper.php

我已经下载了 ctctWrapper 并将其放在 app/vendors 文件夹中并将其保存为“ctctwrapper.php”,以便 Cake 自动找到具有以下实现的文件:

contacts_controller.php

<?php
App::import('Vendor', 'ctctwrapper');

class ContactsController extends AppController {


    var $name = 'Contacts';
    var $uses = array('Contact', 'Group', 'MarketingList');
    //Set pagination defaults
    var $paginate = array(
            'limit' => 25,
            'order' => array(
                    'Contact.lastname' => 'asc'
                )
            );
function send(){
  //do stuff here
}

}

?>

views/contacts/send.ctp

Create a new folder on Constant Contact:
<?php

echo $this->Form->create('Contact', array('action' => 'send'));
echo $this->Form->input('foldername');
echo $this->Form->end('Submit');

?>

当我访问 /project/contacts/send 时,会发出以下警告,大概是因为未定义这些数组索引。有什么我错过了让它正常工作吗? (注意:由于 Cake 的“文件夹”类存在问题,我还不得不重命名 CC 的“文件夹”类)。

感谢收看!

错误:

Notice (8): Undefined index: status [CORE/vendors/ctctwrapper.php, line 1235]
Notice (8): Undefined index: link [CORE/vendors/ctctwrapper.php, line 1239]
Notice (8): Undefined index: email_address [CORE/vendors/ctctwrapper.php, line 1241]
Notice (8): Undefined index: first_name [CORE/vendors/ctctwrapper.php, line 1242]
Notice (8): Undefined index: middle_name [CORE/vendors/ctctwrapper.php, line 1243]
Notice (8): Undefined index: last_name [CORE/vendors/ctctwrapper.php, line 1244]
Notice (8): Undefined index: company_name [CORE/vendors/ctctwrapper.php, line 1245]
Notice (8): Undefined index: job_title [CORE/vendors/ctctwrapper.php, line 1246]
Notice (8): Undefined index: home_number [CORE/vendors/ctctwrapper.php, line 1247]
Notice (8): Undefined index: work_number [CORE/vendors/ctctwrapper.php, line 1248]
Notice (8): Undefined index: address_line_1 [CORE/vendors/ctctwrapper.php, line 1249]
Notice (8): Undefined index: address_line_2 [CORE/vendors/ctctwrapper.php, line 1250]
Notice (8): Undefined index: address_line_3 [CORE/vendors/ctctwrapper.php, line 1251]
Notice (8): Undefined index: city_name [CORE/vendors/ctctwrapper.php, line 1252]
Notice (8): Undefined index: state_code [CORE/vendors/ctctwrapper.php, line 1253]
Notice (8): Undefined index: state_name [CORE/vendors/ctctwrapper.php, line 1254]
Notice (8): Undefined index: country_code [CORE/vendors/ctctwrapper.php, line 1255]
Notice (8): Undefined index: zip_code [CORE/vendors/ctctwrapper.php, line 1256]
Notice (8): Undefined index: sub_zip_code [CORE/vendors/ctctwrapper.php, line 1257]
Notice (8): Undefined index: notes [CORE/vendors/ctctwrapper.php, line 1258]
Notice (8): Undefined index: custom_field_1 [CORE/vendors/ctctwrapper.php, line 1259]
Notice (8): Undefined index: custom_field_2 [CORE/vendors/ctctwrapper.php, line 1260]
Notice (8): Undefined index: custom_field_3 [CORE/vendors/ctctwrapper.php, line 1261]
Notice (8): Undefined index: custom_field_4 [CORE/vendors/ctctwrapper.php, line 1262]
Notice (8): Undefined index: custom_field_5 [CORE/vendors/ctctwrapper.php, line 1263]
Notice (8): Undefined index: custom_field_6 [CORE/vendors/ctctwrapper.php, line 1264]
Notice (8): Undefined index: custom_field_7 [CORE/vendors/ctctwrapper.php, line 1265]
Notice (8): Undefined index: custom_field_8 [CORE/vendors/ctctwrapper.php, line 1266]
Notice (8): Undefined index: custom_field_9 [CORE/vendors/ctctwrapper.php, line 1267]
Notice (8): Undefined index: custom_field_10 [CORE/vendors/ctctwrapper.php, line 1268]
Notice (8): Undefined index: custom_field_11 [CORE/vendors/ctctwrapper.php, line 1269]
Notice (8): Undefined index: custom_field_12 [CORE/vendors/ctctwrapper.php, line 1270]
Notice (8): Undefined index: custom_field_13 [CORE/vendors/ctctwrapper.php, line 1271]
Notice (8): Undefined index: custom_field_14 [CORE/vendors/ctctwrapper.php, line 1272]
Notice (8): Undefined index: custom_field_15 [CORE/vendors/ctctwrapper.php, line 1273]
Notice (8): Undefined index: mail_type [CORE/vendors/ctctwrapper.php, line 1274]
Notice (8): Undefined index: lists [CORE/vendors/ctctwrapper.php, line 1277]
Notice (8): Undefined index: id [CORE/vendors/ctctwrapper.php, line 1240]
Notice (8): Undefined property: Contact::$table [CORE/cake/libs/model/model.php, line 666]
Notice (8): Undefined property: Contact::$table [CORE/cake/libs/model/model.php, line 707]
Notice (8): Undefined property: Contact::$table [CORE/cake/libs/model/model.php, line 698]
Warning (2): Cannot modify header information - headers already sent by (output started at /opt/local/apache2/htdocs/outreach/cake/libs/debugger.php:673) [CORE/cake/libs/controller/controller.php, line 746]

【问题讨论】:

    标签: api cakephp constants contact vendors


    【解决方案1】:

    看起来大多数错误只是参数不存在的低级警告。这些是相对无害的。例外是接近结尾的以下几行。

    Notice (8): Undefined property: Contact::$table [CORE/cake/libs/model/model.php, line 666]
    Notice (8): Undefined property: Contact::$table [CORE/cake/libs/model/model.php, line 707]
    Notice (8): Undefined property: Contact::$table [CORE/cake/libs/model/model.php, line 698]
    

    我敢打赌,这些错误是您的实际问题发生的地方,与 Constant Contact API 类没有太大关系。

    由于我们无法看到您的 send() 函数中发生了什么,因此几乎不可能对其进行进一步调试。

    【讨论】:

    • 感谢您的关注。截至目前,发送函数确实是空的,只是为了不抛出“缺少控制器函数”错误而存在。
    • 删除视图中的 html 助手调用会杀死那些未定义的属性警告 - 这很有意义,因为联系人表中没有名为“文件夹名”的字段。 Iirc,未定义的索引警告可以毫无问题地被抑制?
    猜你喜欢
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多