更新另一个表上的特定表字段

时间:2018-12-30 16:21:03

标签: php mysql sql laravel eloquent

我需要在另一个表的单独字段上更新特定的一个ID /行。逻辑如何?到目前为止,我有此伪代码sql查询。

表名设置

当前表飞机

  

更新设置SET描述ID = 4

我需要更新数据库settings中我数据库上的ID 4

如何将这段代码集成到laravel语法中?

假设我有这个控制器

    public function editAirReg(Request $request, $id)
{

    $descr = $request->input('descr_id');
    DB::update('update settings set description = ,'$descr', where id = 4',[$name,$id]);
    return redirect('/admin/aircrafts')->with('success', 'Settings Updated');
}

还有此视图

 {!! Form::open(['action' => 'Admin\AircraftsController@getdata', 'method' => 'POST']) !!}


   <input type="hidden" class="form-control" name="settings" value="{{$aircraft->air_line}}">


 {{Form::submit('BIND', ['class'=>'btn btn-primary btn-block btn-lg', 'name'=>'submit'])}}

 {!! Form::close() !!}

1 个答案:

答案 0 :(得分:0)

首先,如果要在mysql中进行更新,则getData()没有任何意义。应该将其命名为store()或save或任何您想调用的名称,以便函数名合适。

让我们更改表格,以便它可以将ID传递给控制器​​。

{ Form::open(array('action' => 'Admin\AircraftsController@getdata', $id)) }}
    {{ Form::hidden('settings', $aircraft->air_line) }}
    {{ Form::submit('Submit', array('class' => 'btn btn-primary')) }}
{{ Form::close() }}

我所做的是将您的输入更改为laravel语法。还要确保将ID从表单传递到控制器。看我的例子。看看我在哪里放置$ id字段。

现在在控制器中,这就是您要做的。

$setting = Setting::findOrFail($id); // you must have a model or you can use DB facade
$setting->description = $request->settings; //name that you called it in form
$setting->save();