繁体   English   中英

使用for循环laravel插入多行

[英]Insert multiple rows using for loop laravel

SQLSTATE [42703]:未定义的列:7错误:关系“付款”的列“ 0”不存在\\ n第1行:插入“付款”(“ 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'
  ];

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

您为什么要尝试这样做? 您可以将其保存在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 Facade即可插入数据库。 我猜您正在将payments表用于Payments模型。 如果不只是在您的Payments模型中添加以下行

protected $table = 'payments'; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM