【问题标题】:Insert multiple rows using for loop laravel使用 for 循环 laravel 插入多行
【发布时间】:2019-08-22 12:00:39
【问题描述】:

SQLSTATE[42703]:未定义列:7 错误:关系的列“0” "payments" 不存在\n LINE 1: 插入 "payments" ("0", "1", “2”、“3”、“4”、“5”、“6”、“...\n

    $payments = [];
    for ($x = 0; $x <= 12; $x++) {
      $payments[] = new Payments([
          'id' => Uuid::generate()->string,
          'number_of_months' => $request->number_of_months,
          'status' =>  $request->status,
          'date_of_expire' => $request->date_of_expire,
          'amount' => $request->amount,
          'unpaid_amount' =>  $request->unpaid_amount,
          'user_id' => $request->user_id,
          'date_of_payment' => $date->addMonths(1),
      ]);
    }

   DB::table('payments')->insert($payments);

型号

  public $incrementing = false;


  protected $fillable = [
      'id',
      'number_of_months',
      'date_of_payment',
      'date_of_expire',
      'amount',
      'unpaid_amount',
      'status',
      'user_id',
      'description'
  ];

当我尝试插入数据时出现此错误。我不知道我做错了什么。

【问题讨论】:

标签: php laravel for-loop


【解决方案1】:

你为什么要那样做?您可以保存在 for 循环本身中。

 for ($x = 0; $x <= 12; $x++) {
      Payments::create([
          'id' => Uuid::generate()->string,
          'number_of_months' => $request->number_of_months,
          'status' =>  $request->status,
          'date_of_expire' => $request->date_of_expire,
          'amount' => $request->amount,
          'unpaid_amount' =>  $request->unpaid_amount,
          'user_id' => $request->user_id,
          'date_of_payment' => $date->addMonths(1),
      ]);
  }

不需要使用 DB 门面插入数据库。我猜你正在使用payments 表作为Payments 模型。如果不只是在您的Payments 模型中添加以下行

protected $table = 'payments'; 

【讨论】:

  • 模型没问题,但是这种在for循环中创建的方法是一个很好的解决方案谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-13
  • 1970-01-01
  • 1970-01-01
  • 2023-01-31
  • 1970-01-01
  • 2020-06-20
相关资源
最近更新 更多