【发布时间】:2019-01-15 23:59:58
【问题描述】:
我正在关注一个教程,该教程显示了如何使用 laravel 连接到 MySql,但是在尝试更新值时遇到了错误,我确实尝试找到类似的东西但失败了。 我找到的答案说该对象必须为空,但是如果我要更新现有值,则它不是空的。 我正在关注的一个教程https://www.webslesson.info/2018/01/insert-update-delete-in-mysql-table-laravel-tutorial.html
所以我有一个表单,可以在文件 index.blade.php 中显示数据库中的数据,并带有 edit,该表单可以很好地显示特定用户数据edit.blade.php 和 StudentController.php 文件中的方法。
它们看起来像这样:
用户数据表和编辑按钮index.blade.php
<table class="table table-bordered">
<tr>
<th>First name</th>
<th>Last name</th>
<th>Edit</th>
<th>Delete</th>
</tr>
@foreach($students as $row)
<tr>
<th>{{$row['name']}}</th>
<th>{{$row['surname']}}</th>
<th><a href="{{action('StudentController@edit', $row['id'])}}" class="btn btn-primary">Edit</a></th>
<th></th>
</tr>
@endforeach
</table>
edit.blade.php文件中的表格
<form action="{{action('StudentController@update','$id')}}" method="post">
{{csrf_field()}}
<input type="hidden" name="_method" value="PATCH">
<div class="form-group">
<input type="text" name="name" class="form-control" value="{{$student->name}}" placeholder="Enter first name">
</div>
<div class="form-group">
<input type="text" name="surname" class="form-control" value="{{$student->surname}}" placeholder="Enter last surname">
</div>
<div>
<input type="submit" class="btn btn-primary" value="Edit">
</div>
</form>
以及Student.Controller.php文件中的方法
public function update(Request $request, $id)
{
$this->validate($request, [
'name'=> 'required',
'surname'=> 'required'
]);
$student = Student::find($id);
$student->name=$request->get('name');
$student->surname=$request->get('surname');
$student->save();
return redirect()->route('students.index')->with('success', 'Data Updated');
}
我在 StudentController.php 文件的行中收到错误:$student->name=$request->get('name');
【问题讨论】:
-
检查你是否使用var_dump获取了$request中的值
-
查看edit.blade.php html源码,'$id'应该是$id
-
@kenken9999 编辑了那个,但我仍然收到错误
-
如果将 $request->get() 更改为 $request->input() 会发生什么,或者您尝试 dd($request->get('name'))
-
@kenken9999i 改为输入,现在它可以工作了,不知道为什么,但谢谢你我猜:D