为了账号安全,请及时绑定邮箱和手机立即绑定

将数据保存到两个不同的资源

将数据保存到两个不同的资源

暮色呼如 2022-08-04 17:37:40
我正在尝试保存用户的完整记录,但我依赖于两个单独的表。配置文件数据保存在一个资源中,地址保存在另一个资源中。如何编写代码,以便它首先保存配置文件,然后从生成的id保存地址?有可能?这是我的创建用户代码:export const BarberCreate = (props) => {  return (    <Create {...props}>      <TabbedForm toolbar={<BarberCreateToolbar />}>        <FormTab label="Perfil">          <TextInput source="name" />          <TextInput source="email" />          <DateInput source="birthday" />          <TextInput source="phone" placeholder="(99) 99999-9999" />          <TextInput source="transport" />        </FormTab>        <FormTab label="Endereço">          <TextInput source="street" label="Rua" />          <TextInput source="city" label="Cidade" />          <TextInput source="district" label="Bairro" />        </FormTab>      </TabbedForm>    </Create>  );};```
查看完整描述

1 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

最好的方法是在后端执行此操作,可能具有事务支持,但是如果您不能,那么在react-admin方面进行的一种方法是装饰dataProvider。


v3


const userSaverDataProvider = dataProvider => ({

    ...dataProvider,

    create: async (resource, params) => {


        if (resource === 'users') {


            const profile = await dataProvider.create('profile', {data: {

                name: params.data.name,

                ....

            }})


            await dataProvider.create('address', {data: {

                profileID: profile.data.id,

                street: params.data.street,

                ...

            }})


            return profile        


        }        


        return dataProvider.create(resource, params)

    }

})

也许有必要装饰创建许多,如果你在react-admin上批量创建用户。另外,结账 https://github.com/FusionWorks/react-admin-google-maps,它很有用


查看完整回答
反对 回复 2022-08-04
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信