如何在创建另一个条目时将新条目插入 table?

How do I insert a new entry into a table when another entry is created?

所以我使用 insertGraphAndFetch 将 req.body 值插入我的餐厅 table。在我的 Restaurant 模型上,我有一个带有 HasOneRelation 的 menu 对象。菜单 table 有一个 restaurantId,所以我要做的是使用刚刚创建的 restaurantId 创建一个菜单条目

export const createRestaurant: ExpressHandlerFn = async (req, res, next) => {
  try {
    const {
      name,
      description,
      address,
      cityId,
      priceTier,
      phoneNumber,
      schedule,
      tagIds,
    } = req.body;
    const { thumbnailImage, galleryImages } = req.files as MulterFields;
    const userId = req.session!.id;

    const createRestaurantTransaction = await Restaurant.transaction(async (trx) => {
      let newRestaurant = await Restaurant.query(trx).insertGraphAndFetch({
        name,
        description,
        priceTier,
        address,
        cityId,
        phoneNumber,
        schedule,
      });

这很好用,当我执行以下操作时,邮递员卡在 'sending request':

newRestaurant.menu = await Menu.query().insert({
  restaurantId: newRestaurant.id,
});

非常感谢任何帮助!

您可以使用 $relatedQuery 方法为刚刚创建的餐厅实例插入新的 menu 条目:

await newRestaurant
  .$relatedQuery('menu')
  .insert({ food: 'someFood' });