【发布时间】:2019-04-24 11:46:29
【问题描述】:
我有以下型号:
Page.php 和 Content.php 是一对多的关系。
它们的表结构如下:
页面
标识 |标题 |蛞蝓
内容
标识 | page_id | section_title | section_content
在我的编辑视图中,section_title 和 section_content 字段可以动态生成。
即:用户可以根据需要为内容添加更多部分。
下面是编辑页面的sn-p:
@foreach ($page->content as $content)
<div class="row fieldGroup" id="dataRow{{$content->id}}">
<input type="hidden" name="contentID[]" value="{{$content->id}}">
<div class="col-sm-10 ">
<div class="form-group floating-label {{$errors->has('sectionTitle') ? 'has-error' : ''}}">
<input type="text" name="sectionTitle[]" id="sectionTitle" class="form-control" value="{{$content->sectionTitle}}"> @if($errors->has('sectionTitle'))
<span class="help-block">{{ $errors->first('sectionTitle') }}</span> @endif
<label for="sectionTitle">Section Title</label>
</div>
</div>
<div class="col-sm-2 ">
@if($loop->first)
<a href="javascript:void(0)" class="btn btn-success addMore">
<span class="glyphicon glyphicon glyphicon-plus" aria-hidden="true"></span> Add Section
</a>
@else
<a href="javascript:void(0)" class="btn btn-danger removeData" id="id-delete" data-id="{{$content->id}}"><span class="glyphicon glyphicon glyphicon-remove" aria-hidden="true"></span> Remove</a> @endif
</div>
<div class="col-sm-12 ">
<div class="form-group">
<h4>Section Content</h4>
<textarea name="sectionContent[]" class="editor">{{$content->sectionContent}}</textarea>
</div>
</div>
</div>
@endforeach
以下是来自控制器的更新方法的 sn-p:
$page - > title = $request - > title;
$page - > slug = Str::slug($request - > title, '-');
$page - > save();
$contents = Content::where('page_id', $page - > id) - > get();
for ($i = 0; $i < count($request - > sectionTitle); $i++) {
foreach($contents as $db) {
if (isset($request - > contentID[$i]) && $db - > id == $request - > contentID[$i]) {
$content = Content::find($request - > contentID[$i]);
$content - > sectionTitle = $request - > sectionTitle[$i];
$content - > sectionContent = $request - > sectionContent[$i];
$content - > save();
} else {
$new = new Content;
$new - > page_id = $page - > id;
$new - > sectionTitle = $request - > sectionTitle[$i];
$new - > sectionContent = $request - > sectionContent[$i];
$new - > save();
}
}
}
我遇到的问题是,如果用户在编辑内容后点击了更新按钮。每个内容被保存不止一次。
即:如果有 3 个内容,则每个内容保存 3 次
【问题讨论】: