【发布时间】:2019-05-09 04:50:40
【问题描述】:
这看起来很简单,但我无法解决它
我正在尝试更新我的数据库中的一条记录,该记录已成功检索并显示在我的更新表单上,但是当我点击提交按钮时,我收到一条 Undefined variable: id 错误消息。
这是我的表格
<form action="{{route('Person.update', $person->id)}}" method="POST">
@csrf
{{method_field('PUT')}}
<div class="col-md-12" style="margin-top:20px">
<div class="form-group" style="width: 100%;">
<label for="occupation">{{ __('Occupation') }}</label>
<select class="form-control" name="occupation" id="occupation" required>
<option selected>{{$person->occupation}}</option>
<option value="FE">{{ __('student') }}</option>
<option value="Part">{{ __('Business') }} </option>
<option value="Bank">{{ __('Civil servant') }} </option>
</select>
</div>
</div>
<div class="col-md-6">
<div class="input-group" style="width: 100%;">
<label for="id">{{ __('ID') }}</label><br>
<input type="text" name="id" id="id" class="form-control" value="{{$person->id}}" style="padding: 20px;" readonly>
</div>
</div>
<div class="col-md-6">
<div class="input-group col-md-12" style="width: 100%;">
<label for="name">{{ __('Name') }}</label><br>
<input type="text" name="name" id="name" class="form-control" value="{{$person->name}}" style="padding: 20px;" readonly>
</div>
</div>
<button type="submit" class="btn-primary" style="padding: 10px; font-size: 16px; border: 0;">{{ __('Submit') }}</button>
</form>
我的personController
public function edit($id)
{
$person= Person::find($id);
return view('pages.update')->with('person', $person);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request)
{
//validate
$this->validate($request,[
'id' => 'required',
'name' => 'required',
'occupation' => 'required',
]);
//store in the database
$person = Person::find($id);
$person->id = $request->input('id');
$person->name = $request->input('name');
$person->occupation = $request->input('occupation');
$person->save();
return redirect('pages.customers');
}
这是带我进入编辑表单的链接
<a href="/pages/customers/{{$person->id}}" class="btn btn-warning">Update</a>
【问题讨论】:
-
您应该发布确切的错误并指出它发生的位置。但是在您的
update()方法中,$id确实是未定义的。你可能想要$request->input('id')。 -
在 update() 方法中没有定义或检索 $id 变量。请把剩下的控制器代码发给我们。
-
我们不知道您到底需要什么。您需要什么确切的 ID?