Laravel复选框保存并更新

时间:2016-11-27 21:26:17

标签: laravel

在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());

2 个答案:

答案 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());