【问题标题】:How to Update one form data to different tables in Laravel?如何将一个表单数据更新到 Laravel 中的不同表?
【发布时间】:2019-03-19 11:36:22
【问题描述】:

我正在使用 Laravel 5.6 和 MySQL。在我的应用程序中,我有一些数据编辑表单,它的更新值保存在 3 个不同的表中。调用车辆,汽车并上传我的编辑表单网址如下,

http://localhost:8000/myads/1/edit

number(1)是车辆表id号,像这样,

id    name         owner  
1     toyota        dane
2     BMW           peter
3     Benz          samantha
4     volvo         Alex

汽车桌是这样的,

id     fuel    vehicle_id
1       P              1
2       D              3
3       E              2

我需要根据vehicle_id更新汽车表数据,我的VehicleController汽车表数据更新功能是这样的

public function update(Request $request, $id)
    {
        $vehicle = Vehicle::find($id);

        $vehicle->name = $request->input('name');
        $vehicle->owner = $request->input('owner');

        $vehicle->save();
}

现在我需要使用相同形式的可选值输入来更新汽车表燃料值。如何在 Controller 中执行此操作?

我的燃料选择输入是这样的,

<div class="form-group">
        <label for="exampleFormControlSelect1">Fuel</label>
        <select class="form-control" id="fuel" name="fuel">
            @foreach($vehicles->cars as $car)
            <option value="{!! $car->fuel  !!}">{!! $car->fuel  !!}</option>
            @endforeach 
        <option value="P">Petrol</option>
        <option value="D">Diesel</option>
        <option value="H">Hybrid</option>
        <option value="E">Electric</option>

        </select>
        </div> 

车辆和车型之间的关系是

车辆模型

public function cars()
    {
        return $this->hasMany(Car::class);
    }

汽车模型

public function vehicle()
    {
        return $this->belongsTo(Vehicle::class);
    }

怎么办?

【问题讨论】:

    标签: php mysql laravel-5


    【解决方案1】:

    通过以下代码获得成功,

    $vehicle->cars()->where('vehicle_id', $id)->update(['fuel' => $request->input('fuel')]);
    

    【讨论】:

      【解决方案2】:

      在表单中使用隐藏的输入字段(使用 $car->id 将汽车 ID 加载到输入中)并将其命名为“car_id”。 在同一个更新函数中,

       $carId = $request->input('car_id');
       $car= Car::find($carId);
       //Update details here
       $car->save();
      

      注意:当您使用多个表时,请不要忘记使用 DB Transaction。

      【讨论】:

        猜你喜欢
        • 2013-12-15
        • 1970-01-01
        • 1970-01-01
        • 2021-08-31
        • 2017-06-27
        • 1970-01-01
        • 2019-05-01
        • 2018-06-12
        • 2020-09-15
        相关资源
        最近更新 更多