您好,我在将新的伦敦地铁站对象附加到现有伦敦地铁线对象的关系时遇到问题。正如你在下面的图片中看到的,我可以很容易地通过点击来添加关系。我所要做的就是使用PHP自动生成。我已经将objectId放到了列"Line“的第一个图像数据类型上,比如字符串、数组,但它需要"relation”,我不知道如何添加。在这种情况下,解析文档并不清楚。请帮帮忙。ObjectMetroLine Class ObjectMetro Class Attaching Rows to Relation by Click
$json = file_get_contents('https://api.tfl.gov.uk/line/mode/tube/status');
$data = json_decode($json,true);
$x=0;
foreach ($data as $datax){
$linia = $datax['id'];
$link = 'https://api.tfl.gov.uk/Line/'.$linia.'/StopPoints';
$json2 = file_get_contents($link);
$data2 = json_decode($json2,true);
foreach ($data2 as $datax2){
echo 'Nazwa stacji:' .$datax2['commonName'] ."<br>";
echo 'Lat:' . $datax2['lat']."<br>";
echo 'Lon:' . $datax2['lon']."<br>";
$querych = new ParseQuery("ObjectMetro");
$querych->equalTo("stationId", $datax2['id']);
$res= $querych->first();
if(count($res)==0){//Sprawdza czy jest już obiekt o takiej nazwie
$query = new ParseObject("ObjectMetro");
$query->set("name", $datax2['commonName']);
$query->set("longitude", $datax2['lon']);
$query->set("latitude", $datax2['lat']);
$query->set("stationId", $datax2['id']);
$ktora = count($datax2['modes']);
for($i=0; $i<$ktora; $i++){
if($datax2['lineModeGroups'][$i]['modeName']==='tube'){
$x=$i;
}
}
$ile = count($datax2['lineModeGroups'][$x]['lineIdentifier']);
for($i=0; $i<$ile; $i++){
$jaka = $datax2['lineModeGroups'][$x]['lineIdentifier'][$i];
$querya = new ParseQuery("ObjectMetroLine");
$querya->equalTo('lineId', $jaka);
$result = $querya->first();
$idlinii = $result->getObjectId();
$query->set("lines", $idlinii);//here problem
echo 'Linia: '. $jaka . ' ' . $idlinii . '<br>';
}
try{
$query->save();
echo 'New object created with objectId: ' . $query->getObjectId();
}catch (ParseException $ex) {
echo 'Failed to create new object, with error message: ' . $ex->getMessage();
}
echo '<hr>';
}
}
};发布于 2021-07-15 00:45:27
您可以参考以下指南:https://docs.parseplatform.org/php/guide/#many-to-many-relationships
这就是你应该做的:
$json = file_get_contents('https://api.tfl.gov.uk/line/mode/tube/status');
$data = json_decode($json,true);
$x=0;
foreach ($data as $datax){
$linia = $datax['id'];
$link = 'https://api.tfl.gov.uk/Line/'.$linia.'/StopPoints';
$json2 = file_get_contents($link);
$data2 = json_decode($json2,true);
foreach ($data2 as $datax2){
echo 'Nazwa stacji:' .$datax2['commonName'] ."<br>";
echo 'Lat:' . $datax2['lat']."<br>";
echo 'Lon:' . $datax2['lon']."<br>";
$querych = new ParseQuery("ObjectMetro");
$querych->equalTo("stationId", $datax2['id']);
$res= $querych->first();
if(count($res)==0){//Sprawdza czy jest już obiekt o takiej nazwie
$query = new ParseObject("ObjectMetro");
$query->set("name", $datax2['commonName']);
$query->set("longitude", $datax2['lon']);
$query->set("latitude", $datax2['lat']);
$query->set("stationId", $datax2['id']);
$relation = $query->getRelation("lines");
$ktora = count($datax2['modes']);
for($i=0; $i<$ktora; $i++){
if($datax2['lineModeGroups'][$i]['modeName']==='tube'){
$x=$i;
}
}
$ile = count($datax2['lineModeGroups'][$x]['lineIdentifier']);
for($i=0; $i<$ile; $i++){
$jaka = $datax2['lineModeGroups'][$x]['lineIdentifier'][$i];
$querya = new ParseQuery("ObjectMetroLine");
$querya->equalTo('lineId', $jaka);
$result = $querya->first();
$relation->add($result);
echo 'Linia: '. $jaka . ' ' . $idlinii . '<br>';
}
try{
$query->save();
echo 'New object created with objectId: ' . $query->getObjectId();
}catch (ParseException $ex) {
echo 'Failed to create new object, with error message: ' . $ex->getMessage();
}
echo '<hr>';
}
}
};https://stackoverflow.com/questions/68379514
复制相似问题