如何更新现有行在 laravel 中的 table 中为多个数组值添加插入新行

How to update the existing rows add insert new rows in table in laravel for multiple array values

我有 table 个具有数组输入值的数据,如下所示

<table>
    <tr>
    <td>Name</td>
    <td>Email</td>
    <td>Phone</td>
    </tr>
    <tr>
        <td><input type="text" name="user_id[]" value="1"></td>
        <td><input type="text" name="name[]"></td>
        <td><input type="text" name="email[]"></td>
        <td><input type="text" name="phone[]"></td>
    </tr>
    <tr>
        <td><input type="text" name="user_id[]" value="2"></td>
        <td><input type="text" name="name[]"></td>
        <td><input type="text" name="email[]"></td>
        <td><input type="text" name="phone[]"></td>
    </tr>
    <tr>
        <td><input type="text" name="user_id[]" value=""></td>
        <td><input type="text" name="name[]"></td>
        <td><input type="text" name="email[]"></td>
        <td><input type="text" name="phone[]"></td>
    </tr>
    <tr>
        <td><input type="text" name="user_id[]" value=""></td>
        <td><input type="text" name="name[]"></td>
        <td><input type="text" name="email[]"></td>
        <td><input type="text" name="phone[]"></td>
    </tr>
</table>

我正在尝试用 user_id 值更新前两行,并尝试将最后两行作为新行插入。 我在 laravel 控制器中使用以下插入查询:

if(!empty(Input::get('user_id')))
{
    for($i = 0; $i < count(Input::get('name')); $i++) 
    {

        $id   = Input::get('user_id')[$i];
        $data = User::find($id);
        $data->name          = Input::get('name')[$i];
        $data->email         = Input::get('email')[$i];
        $data->phone         = Input::get('phone')[$i];
        $data->save();
  }
}

if(empty(Input::get('user_id')))
{
    for($i = 0; $i < count(Input::get('name')); $i++) 
    {
        $new                = new User();
        $new->name          = Input::get('name')[$i];
        $new->email         = Input::get('email')[$i];
        $new->phone         = Input::get('phone')[$i];
        $new->save();
  }
}

但是它不能正常工作。有人可以建议我解决这个问题吗?

您应该使用 foreach 循环来遍历字段并在字段是否为空时执行某些操作。

也许,这样的事情会对你有所帮助。

$fields = Input::get('user_id');

foreach($fields as $field)
{
    if(! empty($field))
    {
        // field is not empty
        // update here
    }
    else
    {
        // field is empty
        // do something here
    }
}