我的表格如下图所示:
我有多个具有 set_name(数字1 2 3 ...)和set_value(0或1)的值。
这是我的数据库表:
例如,如果我选中1号和2号和6号,然后单击“保存”按钮。
首先检查是否在数据库的 set_name 中有一个我检查过的名称的值,如果有值(set_name),则更新 set_value其中的值为1 ,否则,如果没有任何set_name和具有该名称的任何行,请创建一个名为Number 1,Number 2和Number 6的行,然后将其set_value设置为1 < br />
我如何使用laravel进行这项工作?
答案 0 :(得分:0)
首先,您需要更改表设计,在set_name
字段上设置主键或唯一索引。
然后,如果表中没有set_name
,则可以使用执行INSERT的SQL;如果表中set_name
,则可以使用UPDATE的SQL。 here说明了此作业的SQL:
INSERT INTO t1 (set_name, set_value) VALUES ('$cb_name', '$cb_value')
ON DUPLICATE KEY UPDATE set_name = '$cb_name',
set_value = '$cb_value';
答案 1 :(得分:0)
假设使用以下HTML:
angular
.module('pessoas', [])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'listar.html'
});
})
.controller('CtrlPessoas', function ($scope) {
$scope.pessoas = [
{nome: "Maria", cidade: "São Paulo"},
{nome: "Jose", cidade: " Cacem"},
{nome: "Dave", cidade: "Sintra"},
{nome: "Juan", cidade: "Mexico"}
];
});
您可以使用<label>
<input type="hidden" name="name[]" value="Number 1" />
<input type="checkbox" name="value[Number 1]" value="1" />
Number 1
</label>
方法:
firstOrCreate
来自the docs:
firstOrCreate方法将尝试使用给定的列/值对查找数据库记录。如果在数据库中找不到模型,则会插入一条记录,其中包含第一个参数的属性以及可选的第二个参数的属性。