【问题标题】:Insert multiple entry using repository in Laravel在 Laravel 中使用存储库插入多个条目
【发布时间】:2018-07-18 17:03:02
【问题描述】:

我使用存储库插入数据

public function create(array $data)
{
    return $this->model->create($data);
}

当我在表单中添加单个数据时效果很好

<input type="text" class="form-control" name="name">

在控制器中使用 store 方法

public function store(Request $request)
{
    $this->model->create($request->only($this->model->getModel()->fillable));  
}

但是,如果我尝试添加多个数据,它将无法正常工作

<input type="text" class="form-control" name="name[]">

在这种情况下,我可以这样存储多个数据

public function store(Request $request)
    {
        foreach ($request->user_id as $key => $val) {
            $this->model->create([
                'name' => $request->name[$key],
                'description' => $request->description[$key],
                'user_id' => $request->user_id[$key],
            ]);
        }
    }

您能否建议我在控制器中的存储方法应该如何使用存储库接受数据数组?

【问题讨论】:

    标签: php laravel repository laravel-5.6


    【解决方案1】:

    获取请求数据到变量$input,然后使用foreach循环插入。

    public function store(Request $request) {
        $input = $request->all();
        foreach ($input['user_id'] as $key => $val) {
            $this->model->create([
                'name' => $input["name"][$key],
                'description' => $input["description"][$key],
                'user_id' => $val,
            ]);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      • 2021-07-10
      • 2021-05-11
      • 2012-12-22
      相关资源
      最近更新 更多