编辑时不将id作为标识符传递

时间:2018-05-04 22:28:20

标签: admin-on-rest

假设我有一个列表和编辑以下架构的项目:

STRING key UNIQUE PRIMARY
STRING value

问题在于,当使用admin-on-rest时,编辑默认使用id生成请求,如果没有请求,则传递未定义。如何在SimpleForm上更改它,以便它使用其他参数而不是id - 在我的情况下,key - 。

列表和编辑示例:

export const ParamList = props => (
<List title = "All params" { ...props} >
    <Datagrid >
        <TextField source = "key" sortable={false} />
        <TextField source = "value" sortable={false} />
        <EditButton />
    </Datagrid>
</List>
);


export const ParamEdit = props => (
<Edit title = {< ParamTitle />} { ...props } >
    <SimpleForm >
        <TextInput source = "key" />
        <TextInput source = "value" />
    </SimpleForm>
</Edit >
);

发送编辑时,会发出以下请求:

PUT www.randomurl.com/param/undefined

但我希望它是这样的:

PUT www.randomurl.com/param/<item's key>

我已经在documentation上看到了可以设置自定义请求的整体。但是在考虑是否有更容易的事情,比如在SimpleForm上添加参数:

export const ParamEdit = props => (
<Edit title = {< ParamTitle />} { ...props } >
    <SimpleForm id={"key"}>
        <TextInput source = "key" />
        <TextInput source = "value" />
    </SimpleForm>
</Edit >
);

提前致谢。

1 个答案:

答案 0 :(得分:1)

如文档中所述,正确且唯一的方法是编写自定义restClient。见https://marmelab.com/admin-on-rest/FAQ.html#can-i-have-custom-identifiersprimary-keys-for-my-resources