【发布时间】:2021-05-09 13:11:09
【问题描述】:
我已搜索但找不到可行的解决方案。我根本无法更新用户表中的特定字段(状态)。我在 Laravel 的 auth users 原始表中添加了两个额外的字段。
这里是迁移代码:
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->unsignedBigInteger('role_id');
$table->integer('status')->default(0);
$table->foreign('role_id')->references('id')->on('roles');
});
}
我还添加了可填充:
protected $fillable = ['name', 'email', 'password', 'role_id', 'status'];
现在的问题是我无法更新“状态”字段并且操作不会返回任何问题。我已经尝试过不同的方法。看看代码并指导我。 TIA。
public function update(Request $request, $id)
{
$validatedData = $request->validate([]);
// APPROACH # 1
$user = User::find($id);
$user->status = $request->status;
$user->save();
// APPROACH # 2
$user = User::find($id);
$user->update([
'status' => $request->status,
]);
// APPROACH # 3
User::findOrFail($id)->update($request->all());
}
表格:
<form action="{{ url('/admin/user') }}/{{ $editRecord[0]->id }}" method="POST" enctype="multipart/form-data">
@method('PUT')
@csrf
<select id="status" name="status" class="form-control">
<option value="1" @if($editRecord[0]->status == 1) selected @endif>Active</option>
<option value="0" @if($editRecord[0]->status == 0) selected @endif>In-Active</option>
</select>
</form>
最后的路线:
Route::put('/admin/user/{id}', 'Admin\PortalController@update');
【问题讨论】:
-
添加id看是否收到
-
是的,收到了。 $request->status 也收到了。
-
dd($user) 修改后,查看显示什么?
-
dd($request->all());的输出是什么? -
@shams 它给出了“App\User”数组,其中#original 中的“status”值为“1”,这是正确的。
标签: php laravel vue.js eloquent