如何使ReferenceManyField匹配网址中的子项?

时间:2018-08-02 17:32:52

标签: spring-rest react-admin

我正在使用react-admin和Spring REST作为数据API构建应用程序。我通常会遇到一个带有相对注释的Product对象。

在显示产品的元素中,我添加了ReferenceManyField以便显示该产品的注释。但这是问题所在:根据参考文档,此组件获取调用注释列表的注释并查找具有父ID的注释:

https://marmelab.com/react-admin/Fields.html#referencemanyfield

但是由于我的Spring REST为一种特定产品产生了类似的结果:

{
  "id" : 1,
  "description" : "Description of Product 1",
  "price" : 50045.0,
  "title" : "Title of product 1",
  "additionaldata" : [ ],
  "pimages" : [ ],
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/products/1"
    },
    "product" : {
      "href" : "http://localhost:8080/products/1"
    },
    "pcomments" : {
      "href" : "http://localhost:8080/products/1/pcomments"
    },
    "vendor" : {
      "href" : "http://localhost:8080/products/1/vendor"
    }
  }
}

逻辑是相反的,我们找到要调用的URI,以找到该特定产品的评论列表。

如何使ReferenceManyField调用http://localhost:8080/products/1/pcomments来获取该产品的评论?

2 个答案:

答案 0 :(得分:0)

尝试执行以下操作:

<select class="form-control" id="customer_id" name="customer_id">
    <?php foreach ( $customer as $cust ){?>
      <option value="<?=$cust->customer_id;?>" <?php if($cust->customer_id == $datas[0]->customer_id) echo 'selected="selected"'; ?> > <?php echo $cust->customer_id; ?></option>
    <?php }?>
</select>

答案 1 :(得分:0)

您可以将搜索URL包裹在ReferenceManyField的筛选器道具中,然后在dataProvider中从GET_MANY_REFERENCE获取筛选器(切换大小写)。那么您可以做任何您想做的事