php - 从复选框 laravel 更改用户状态
问题描述
我想用复选框更改用户状态。如果复选框被标记,状态应该是一。现在我在控制器中的更改状态功能根本没有改变任何东西。我如何确保他将复选框视为一个值,并且当值为 1 时复选框标记会发生变化。这是我到目前为止所拥有的:
在我看来:
<form action="{{ route('users.change_status', $user) }}" class="form" method="post">
{{ csrf_field() }}
@method('PATCH')
<label>body</label>
<input type="checkbox" class="form-control" name="body" value="{{$user->status}}">
<div class="form-group">
<button type="submit" class="button is-link is-outlined">Update</button>
</div>
</form>
在我的用户控制器中:
public function index()
{
$users = User::get();
return view('users',compact('users'));
}
public function change_status(Request $request, User $user)
{
dd($user);
// Validate posted form data
$validated = $request->validate([
'status' => 'required',
]);
if (!$validated) { return redirect()->back();}
$user->update($request->all());
return redirect()->back();
}
还有我在 web.php 中的路线:
Route::get('/users', [UserController::class, 'index'])->name('users.index');
Route::patch('/change_status', [UserController::class, 'change_status'])->name('users.change_status');
解决方案
使用路由模型绑定
Route::patch('/change_status/{user}', [UserController::class, 'change_status'])->name('users.change_status');
推荐阅读
- swift - Firestore:isGreatThan 在查询中不起作用(iOS)
- mysql - MariaDB Galera Cluster: SELECT ... FOR UPDATE 为什么没有锁定?
- menu - Typo3在html模板中的子页面上获取链接父页面
- python - python mocking 检查对象的方法是否被访问(未调用)
- javascript - 如何在angular5中制作外部网站的动态网址?
- java - WebView 的 postUrl 方法仅适用于显式字符串
- sql - 将一组行显示为单行
- javascript - JQuery 不使用 $('#22/1') 创建对象?
- scala - 用开始时间和结束时间包装 monix 任务的最佳方法是什么?
- google-apps-script - 如何在单元格中插入刚刚在 Google Drive 中创建的文件夹的名称和链接?