[英]How to updateOrCreate multiple group in laravel 7?
这是我的表格
为什么这个updateOrCreate
不起作用? 当我将其更改为update
。 作品。 而且更新得很好。 但是updateOrCreate
不起作用。
当我添加记录或更新记录时。 将被添加。 这意味着它不会被更新。
编辑刀片.php
<form method="post" action="{{ route('filters.update', ['filter' => $filter->id]) }}">
@method('PUT')
@csrf
<select class="form-control selectpicker" title="چیزی انتخاب نشده است." id="category_id" name="category_id" data-live-search="true">
@foreach($categories as $id => $name)
<option value="{{ $id }}" {{ $filter->category_id == $id ? 'selected' : '' }}>{{ $name }}</option>
@endforeach
<input type="hidden" name="filters[{{ $loop->index }}][id]" value="{{ $filter->id }}">
<input type="text" id="name" class="form-control" name="filters[{{ $loop->index }}][name]" value="{{ $filter->name }}">
<input type="text" id="latin" class="form-control" name="filters[{{ $loop->index }}][latin]" value="{{ $filter->latin }}">
<select id="field" class="form-select field" name="filters[{{ $loop->index }}][field]">
<option value="0" {{ $filter->field == 0 ? 'selected' : '' }}>No</option>
<option value="1" {{ $filter->field == 1 ? 'selected' : '' }}>Yes</option>
</select>
</select>
过滤器控制器.php
public function update(Request $request, Filter $filter)
{
$filters = collect([$request->filters]);
$filters->each(function ($item) use ($request, $filter) {
if (!isset($item['name']) && !isset($item['latin'])) {
foreach ($item as $key => $row) {
$data = [
'category_id' => $request->category_id,
'name' => $row['name'],
'latin' => $row['latin'],
'field' => $row['field'],
];
Filter::updateOrCreate([
'id' => $row['id'],
], $data);
}
} else {
return null;
}
});
return redirect()->route('filters.index');
}
@纳科夫
我现在有这个。
当我添加一个
例如添加dd
过滤器表折叠。
当我添加这个时:
public function update(Request $request, Filter $filter)
{
dd($request->all());
尝试删除 Filter::find 行并将其替换为 updateOrCreate 行:
Filter::updateOrCreate(
['id' => $row['id']],
[$data]
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.