【发布时间】:2019-08-17 18:37:24
【问题描述】:
我有两个表,即machines 和calls。 machines 表有一个机器列表及其详细信息。目前,要记录有关机器的故障呼叫,管理员将输入machine_number(以确保机器在公司下注册)。该编号用于在数据库中搜索machines表,结果会以表格形式显示。
我的问题是,我希望在提交表单时,在machines 表中更新机器的详细信息(以防详细信息发生更改),同时在calls 表(用于记录故障调用)。
这里是搜索功能:
Route::any('/search_results',function(){
$query = Input::get ( 'query' );
$machine= Machine::where('machine_id','LIKE','%'.$query.'%')->get();
return view('/addNewCall')->with('machine', $machine)->withQuery($query);
});
这是我的表格:
<form action="{{route('Call.store')}}" method="POST">
@csrf
@if(count($machine) > 0)
@foreach($machine as $machine)
<div class="col-md-6">
<div class="input-group" style="width: 100%;">
<label for="machine_id">{{ __('Machine ID') }}</label><br>
<input type="text" name="machine_id" id="machine_id" class="form-control" style="padding: 20px;" value="{{$machine->machine_id}}">
</div>
</div>
<div class="col-md-6" style="margin-top:20px">
<div class="input-group col-md-12" style="width: 100%;">
<label for="machine_custodian">{{ __('Machine Custodian Name') }}</label><br>
<input type="text" name="machine_custodian" id="machine_custodian" class="form-control" style="padding: 20px;" value="{{$machine->machine_custodian}}" required>
</div>
</div>
<div class="col-md-6" style="margin-top:20px">
<div class="input-group" style="width: 100%;">
<label for="call_logged_on">{{ __('Call logged on') }}</label><br>
<input type="datetime-local" name="call_logged_on" id="call_logged_on" class="form-control" style="padding: 20px;" required>
</div>
</div>
<div class="input-group col-xs-12 form-group" style="margin-top:20px">
<label for="fault_description">{{ __('Fault Description') }}</label><br>
<textarea name="fault_description" id="fault_description" class="form-control" rows="7" cols="50" required></textarea>
</div>
<div class="col-md-6">
<div class="input-group" style="width: 100%;">
<label for="assigned_FE">{{ __('Field engineer in charge') }}</label><br>
<input type="text" name="assigned_FE" id="assigned_FE" class="form-control" style="padding: 20px;" value="{{$machine->assigned_FE}}" required>
</div>
</div>
@endforeach
<button type="submit" class="btn-primary" style="padding: 10px; font-size: 16px; border: 0; margin-top:25px">{{ __('Log
Call') }}</button>
@else
<h2 style="margin:30px; font-style:italic; font-weight:lighter" class="text-center">Sorry, there is no ATM with the terminal id of "<b>{{ $query }}</b>" in our database</h2>
@endif
</form>
这是我的 CallsController:
public function store(Request $request)
{
$this->validate($request,[
'machine_id' => 'required',
'machine_custodian' => 'required',
'call_logged_on' => 'required',
'fault_description' => 'required',
'assigned_FE' => 'required',
]);
//store in the database
$call = new Call;
$call->machine_id = $request->input('machine_id');
$call->machine_custodian = $request->input('machine_custodian');
$call->call_logged_on = $request->input('call_logged_on');
$call->fault_description = $request->input('fault_description');
$call->assigned_FE = $request->input('assigned_FE');
$call->save();
return redirect('/pages/newCall')->with('success', 'call created check pending calls to view call');
}
目前,代码在calls 表中创建了一个新行。但是我不知道如何增强代码来更新machines表中机器的信息。
注意:machine_id 列与machines 表中的id 列不同
【问题讨论】:
-
不确定注意是什么意思,如果您没有机器ID,您需要如何更新它?
-
我的意思是
machine_id在数据库中没有自动递增...id包含在搜索结果数组中 -
不管它是否包含机器对象的外键,数据库中必须自动递增的是机器表中的
id。 -
@Austin 如果
machine_id是machine表的外键,那么无论如何它都不会是calls表中的自动增量。 -
您要更新机器表中的哪些列?
标签: php html laravel eloquent laravel-blade