Php 插入类别为+的候选人;扩音器
我正试图用PHP通过REST API在Bullhorn中保存和更新一个候选者。Php 插入类别为+的候选人;扩音器,php,api,rest,categories,Php,Api,Rest,Categories,我正试图用PHP通过REST API在Bullhorn中保存和更新一个候选者。 我已从BullHorn加载了一个候选人,我的类别如下所示: ["categories"]=> object(stdClass)#632 (2) { ["total"]=> int(2) ["data"]=> array(0) { } } ["category"]=> object(stdClass)#654 (1) { ["id"]=> int(1123135
我已从BullHorn加载了一个候选人,我的类别如下所示:
["categories"]=>
object(stdClass)#632 (2) {
["total"]=>
int(2)
["data"]=>
array(0) {
}
}
["category"]=>
object(stdClass)#654 (1) {
["id"]=>
int(1123135)
}
我可以看到我的id等于1123135
。但我怎么知道这些是哪一类呢?我在BullHorn中选择了两个类别,我的id现在是1123135。我有像“网络营销专家,数据科学,…”这样的分类
但是如何根据用户的选择更新这些类别?Bullhorn中的类别与大多数其他实体类似。我就是这样做的
function BHGetCategoryData($entity_type, $entity_id) {
$url = $_SESSION['restUrl'].'entity/'.$entity_type.'/'.$entity_id.'?BhRestToken='.$_SESSION['BhRestToken'].'&fields=id,name';
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$data = curl_exec( $ch );
$obj = json_decode($data, true);
curl_close( $ch );
return $obj;
}
function BHQueryCategory() {
$url = $_SESSION["restUrl"]."/query/Category?where=enabled=true%20AND%20id>1&fields=id,name&orderBy=id&count=100&BhRestToken=".$_SESSION["BhRestToken"];
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$data = curl_exec( $ch );
$obj = json_decode($data, true);
return $obj;
}
// This dumps a list of categories
var_dump(BHQueryCategory());
$entity_id= 1123135;
$entity_type='Category';
// This will query one category for the name and id
var_dump(BHGetCategoryData($entity_type, $entity_id));
当然,这假设您已经处理了RESTURL和rest令牌以及所有这些内容
由于动态提取所有类别的时间延迟,我可能会建议您下载完整列表并在客户端填充它,而不是每次要填充下拉列表时都调用查询
还有一点让人困惑。有一个“类别”可以作为单个值写入候选记录。还有“类别”,这是一种“对多”关系,不能与主实体一起书写,必须单独调用。下面是一个可以实现这一点的函数
function BHCreateCandidateToMany($candid,$codegroup,$codestring) {
$url = $_SESSION['restUrl'].'entity/Candidate/'.$candid.'/'.$codegroup.'/'.$codestring.'?BhRestToken='.$_SESSION['BhRestToken'];
echo $url;
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_HTTPHEADER => Array("Content-Type: application/json"),
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$data = curl_exec( $ch );
$obj = json_decode($data, true);
curl_close( $ch );
return $obj;
}
文件可在此处找到-
(请根据需要整理代码-只需一个粗略的草稿即可)$codegroup、$codestring变量的值应该是多少?$codegroup='specialties';或$codegroup='类别';或$codegroup='category';很难说,因为每个系统都是定制的,这也让我们感到困惑,“parentCategoryId值大于零的类别是一个特产。”$codestring='1123135';同样,这将是特定于系统的