【问题标题】:Insert dynamically generated form inputs to MySQL database using Laravel [duplicate]使用 Laravel 将动态生成的表单输入插入 MySQL 数据库 [重复]
【发布时间】:2019-07-14 03:06:50
【问题描述】:

我有一个用于向系统添加支票的表格。表格有两部分;第一部分是通用信息,即客户详细信息,第二部分是唯一详细信息,即检查详细信息。通过单击为表单生成重复输入的添加按钮,可以为同一用户添加多个检查。 使用 Laravel 将数据保存到 mysql 数据库时,出现错误

"未定义的偏移量:1"

这是我的 laravel 控制器:

public function store(Request $request)
{
  $customer_name = $request->customer_name;
  $cheque_number=$request->cheque_number;
  $count = count($cheque_number);

    for($i = 0; $i < $count; $i++){
        $objModel = new Cheque();
        $objModel->customer_name = $customer_name[$i];
        $objModel->cheque_number = $cheque_number[$i];
        $objModel->save();
    }
}

我的主要挑战是每个支票号码都应该保存在一个新行上,但要使用相同的客户名称,并且只提供一次。

【问题讨论】:

  • 客户名包含单值还是多值?
  • 客户名称是一个值,而支票号码可以有多个值。不同的支票号码应存储在不同的数据库行中,但客户名称相同
  • 你能展示你向控制器发送数据的表单吗?
  • @Shibon 没有。这看起来像是一个不同的问题。

标签: php mysql laravel


【解决方案1】:

试试这个

public function store(Request $request)
{
  $customer_name = $request->customer_name;
  $cheque_number = $request->cheque_number;
  $count = count($cheque_number);

    for($i = 0; $i < $count; $i++){
       if(isset($cheque_number[$i])) {  //for check value is set or not..
          $objModel = new Cheque();
          $objModel->customer_name = $customer_name;  //same name
          $objModel->cheque_number = $cheque_number[$i]; //different number
          $objModel->save();  
       }
    }
}

【讨论】:

    【解决方案2】:
    public function store(Request $request){
     $customer_name = $request->get('customer_name');
     $cheque_number = $request->get('cheque_number');
     $count = count($cheque_number);
    
     for($i = 0; $i < $count; $i++){
      if(isset($cheque_number[$i])){
       $objModel = new Cheque();
              $objModel->customer_name = $customer_name;  //same name
              $objModel->cheque_number = $cheque_number[$i]; //different number
              $objModel->save(); 
      }
     }
    }
    

    【讨论】:

      【解决方案3】:

      你应该试试这个:

      public function store(Request $request)
      {
        $customer_name = $request->customer_name;
        $cheque_number = $request->cheque_number;
        $count = count($cheque_number);
      
          for($i = 0; $i < $count; $i++){
             if(isset($cheque_number[$i])) {  
                $objModel = new Cheque();
                $objModel->customer_name = $customer_name;  //same name
                $objModel->cheque_number = $cheque_number[$i]; //different number
                $objModel->save();  
             }
          }
      }
      

      【讨论】:

      • @Vic:很高兴为您提供帮助 :)
      猜你喜欢
      • 2016-01-22
      • 2016-11-13
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 2017-08-20
      • 2015-10-18
      • 2019-01-24
      • 1970-01-01
      相关资源
      最近更新 更多