我需要在另一个表的单独字段上更新特定的一个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() !!}
答案 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();