如何保存和更新多行

时间:2019-08-15 06:47:15

标签: php laravel

我正在尝试将一些用户设置保存在数据库中。
设置由复选框表示。

<td>
    {{$user->bitrixId}}<input type="hidden" name="bitrixId[]" value="{{$user->bitrixId}}">
</td> 

<input type="checkbox" class="input-group" name="commercial[]" Value="0"> 
<input type="checkbox" class="input-group" name="domestic[]" Value= "0">  

应该存储设置的控制器方法:

public function store(Request $request)
{
    $bitrixIds[] = $request->bitrixId;
    $commercial = [];
    $domestic = [];
    $agent_Type = new AgentTypes($request->all());

    foreach ($bitrixIds as $bt) {
        $ag = new AgentTypes();
        $ag->bitrixId = $bt;
        $ag->commercial = json_encode($agent_Type->commercial);
        $ag->domestic = json_encode($agent_Type->domestic);
        $ag->save();
    }
}

2 个答案:

答案 0 :(得分:0)

如果您想在刀片中包含多个名称相同的物品:

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


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

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


<input type="text" name="commercials[1][family]"  class="form-control m-input">

您可以为数字1 2 3++分别定义一个变量。

现在在您的控制器中,您可以使用此变量:

$commercials= $request->get("commercials");

 if (isset($commercials) && $commercials!= [])
        {
 foreach ($commercials $perCommercial)
            {
                commercialas::create([
                    "name"      => $perCommercial["name"],
                    "family"  => $perCommercial["family"]
                ]);
            }

}

答案 1 :(得分:0)

Try this 
public function store(Request $request)
{
    $bitrixIds = $request->bitrixId;
    $commercial = $request->commercial;
    $domestic = $request->domestic;

    foreach ($bitrixIds as $key => $bt) {
        $ag = new AgentTypes();
        $ag->bitrixId = $bt;
        $ag->commercial = $commercial[$key];
        $ag->domestic = $domestic[$key];
        $ag->save();
    }
}