我怎么知道参数应该是一个对象而不是数组?

时间:2014-10-11 04:29:18

标签: podio

$new_contact = PodioContact::create( 
                    2144836,
                    new PodioContact(
                    array('name' => $name,'title'=>$title, 'organization'=>$org, 'phone' => $phone, 'mail' => $email)
                    )  
                );

以上是创建新联系人的方法。它接受2个参数,第一个是工作空间id的整数,第二个是保存联系人详细信息的Contact对象。

参考这里https://developers.podio.com/doc/contacts/create-space-contact-65590,我清楚地知道应该是第一个参数,即工作区id。

然而,第二个参数在API Doc中声明为$ attributes = array(),这是一个数组。我认为这是联系人属性的键值数组。我继续将键值数组传递给第二个参数,如下所示:

$new_contact = PodioContact::create( 
                    2144836,
                    array('name' => $name,'title'=>$title, 'organization'=>$org, 'phone' => $phone, 'mail' => $email)
                );

一直无法工作。经过1个小时的挣扎和浪费。我只是尝试传递一个Contact Object作为第二个参数,如本文开头所示。因此,通过这次试验和错误并浪费了大量时间,我发现应该是运气的第二个论点。

所以我的问题是,为什么显示第二个参数的API Doc应该是一个数组?文档是错误的还是我错过了什么?你能否告诉我,如果我在这里做错了什么,所以我不需要反复试验,浪费1~2小时来弄清楚第二个论点。

1 个答案:

答案 0 :(得分:2)

这真的是一回事。当您传递Podio *对象作为attributes参数时,podio-php将通过调用该对象上的as_json方法对其进行序列化(然后它将是一个关联数组)。如果您将podio-php置于调试模式,您可以准确地看到通过线路发送的内容:http://podio.github.io/podio-php/debug/