php - Laravel 中的复选框
问题描述
I need to create a checkbox, which when selected my user is considered as ACTIVE, and when this checkbox is not selected the user is considered as INACTIVE There's a column in my database called (is_active), and it's tinyInteger, defaults to 1, but如果我单击该复选框,它必须变为 0
我需要用一个复选框来做到这一点,我的代码是这样的
<form action="/is_active/save" method="post" class="lg:text-left">
@csrf
<div class="mb-3">
<div class="p-6 card bordered">
<div class="form-control">
<input type="checkbox" name="is_active">
<label>Active</label><br/><br/>
</div>
</div>
</div>
<button type="submit"
class="inline-flex mt-1 justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-blue-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
Save
</button>
</form>
我的表格被定向到
Route::post('/is_active/save', function () {
$userId = auth()->user()->id;
$is_active = request('is_active');
$userId->is_active = $is_active;
$userId->save();
return redirect("people");
})->middleware(['auth']);
今天这是我保存表格后的结果
尝试在 int 上分配属性“is_active”
如何让我的复选框将值 1 更改为 0?有人可以帮助我吗?谢谢!
解决方案
将复选框的默认值设置为 0:
<input type="checkbox" name="is_active" value="0">
接下来,在后端处理这个值:
$isActive = $request->input('is_active', 1);
这将导致0
如果它被检查,或者1
(第二个参数充当后备)如果你不检查它。
最后,正确分配它:
routes/web.php
:
<?php
use Illuminate\Http\Request;
Route::post('/is_active/save', function (Request $request) {
$user = auth()->user();
$user->is_active = $request->input('is_active', 1);
$user->save();
return redirect('people');
})->middleware(['auth']);
使用此代码,如果您不选中复选框,用户的is_active
值将设置为1
. 如果您检查它,该值将设置为0
。
推荐阅读
- mysql - MYSQL 存储函数中的 SELECT 查询
- python - python 的 csv.reader 是否将整个文件读入内存?
- sql - 返回财政年度的第一天(4 月 1 日)T-SQL
- ios - 在屏幕底部实现覆盖视图,其中包含水平卡片/单元格
- javascript - 设置所见即所得编辑器的默认字体类型
- typescript - 打字稿:ES6 Map + 索引签名 = 没有错误?
- python - Python重试打开文件
- android - 没有加号的新资源 ID 声明
- sql - 对 postgresql 表中的值求和并平衡记录
- chef-infra - 未找到 Chef 自定义资源属性