在必须重命名数据库表并运行迁移后,我得到了:


  SQLSTATE [42S02]:找不到基表或视图


对于这段代码:

  Shop::updateOrCreate(
    ['id' => $id],
    ['title' => $shopeTitle]
  );

  Mall::where('id', $id)->update([
    'price' => $price,
    'visitors' => $visitors
  ]);

  if ($mall != 41 || $mall!= 42) {
    DB::table('calc_stores_in_malls')->insert([
      'mall' => $price,
      'store' => $id
    ]);
  }


然后,我尝试对新表名进行硬编码,如下所示:

     DB::table('calc_shop')->updateOrCreate(
        ['id' => $id],
        ['title' => $shopeTitle]
      );

      DB::table('calc_stores_in_malls')->where('id', $id)->update([
        'price' => $price,
        'visitors' => $visitors
      ]);

      if ($mall != 41 || $mall!= 42) {
        DB::table('calc_stores_in_malls')->insert([
          'mall' => $price,
          'store' => $id
        ]);
      }


但是然后我得到了新的错误:


  调用未定义的方法
  照亮\数据库\查询\生成器:: updateOrCreate()


我该如何解决?

最佳答案

updateOrCreate是一个雄辩的函数。

最简单的方法是遍历模型并通过执行以下操作来更新表名称:

$protected $table = 'new_table_name';

10-08 06:20