首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP将行附加到解析器中的关系

使用PHP将行附加到解析器中的关系
EN

Stack Overflow用户
提问于 2021-07-14 21:58:56
回答 1查看 26关注 0票数 0

您好,我在将新的伦敦地铁站对象附加到现有伦敦地铁线对象的关系时遇到问题。正如你在下面的图片中看到的,我可以很容易地通过点击来添加关系。我所要做的就是使用PHP自动生成。我已经将objectId放到了列"Line“的第一个图像数据类型上,比如字符串、数组,但它需要"relation”,我不知道如何添加。在这种情况下,解析文档并不清楚。请帮帮忙。ObjectMetroLine Class ObjectMetro Class Attaching Rows to Relation by Click

代码语言:javascript
复制
$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>';
        }
 }
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-15 00:45:27

您可以参考以下指南:https://docs.parseplatform.org/php/guide/#many-to-many-relationships

这就是你应该做的:

代码语言:javascript
复制
$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>';
        }
 }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68379514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档