在Laravel中保存和更新复选框的最佳做法是什么?
我已设置布尔数据类型,并且迁移文件中的默认值为0,如果我尝试保存该复选框,则会出现此错误:
Incorrect integer value: 'on' for column
还有更新方法呢......
这是我在视图文件中的复选框:
{!! Form::checkbox('clothing_supplied', null, isset($event) ? $event->clothing_supplied : 0, ['id' => 'check', 'class' => 'form-control' ]) !!}
这就是我更新的方式
$event->update($request->all());
答案 0 :(得分:1)
这应该可以解决问题:
$event->clothing_supplied = ($request->get('clothing_supplied') === 'on');
这应该添加到您的控制器操作或您更新模型的任何位置。
这是因为表单提交的实际值是字符串on
而不是布尔值。
可替换地:
$all = $request->all();
$all['clothing_supplied'] = ($request->get('clothing_supplied') === 'on');
$event->update($all);
答案 1 :(得分:1)
试试这个
#include <stdio.h>
#include <stdlib.h>
#define MAX_size 2000
typedef struct TMatrix{
int grid[MAX_size][MAX_size];
int sizex;
int sizey;
} TMATRIX;
int readSize(TMATRIX *matrix);
int main(void){
TMATRIX matrix;
printf("DEBUG\n");
if (readSize(&matrix)==1){
printf ("Invalid input.\n");
return 1;
}
printf("%d %d\n", matrix.sizex,matrix.sizey);
return 0;
}
int readSize(TMATRIX *matrix){
printf("DEBUG\n");
if (scanf("%d %d", &matrix->sizex, &matrix->sizey)!=2) return 1;
if (matrix->sizex<1 || matrix->sizey<1) return 1;
return 0;
}
$request->replace(array('clothing_supplied' => (bool)$request->input('clothing_supplied')));
仅根据特定值编辑单个字段
$event->update($request->all());