我正在开发一个laravel应用程序。在这个应用程序中,我有三个表:
subjects
id | name
-- | ----
01 | maths
02 | english
divisions
id | name
-- | ----
01 | Senior High
02 | Junior High
division_subject
数据透视表
division_id | subject_id
--- | ---
01 | maths
02 | english
主题可以有很多分歧,因此,在我的表单中,我有一个所有分区的列表作为复选框。我在一个部门教授该科目,将检查一个部门。如果教授的科目是许多分裂,那么所有教授科目的部门也将被检查。现在这在插入没有问题时工作正常。这是表单的外观:
问题
现在,我希望能够编辑主题,当我单击编辑按钮时,我希望检查所有检查到主题的分区或分配给数据透视表中主题的所有分区< / strong>已检查。 这是我无法在laravel中解决的问题。到目前为止,这是我的代码的样子:
分区控制器,它返回要分配给主题的所有分区:
public function index(Request $request)
{
//
if ($request->ajax()) {
$divisions = Division::all();
return $divisions->pluck('name', 'id')->toArray();
}
//return view('division.show', compact('divisions'));
}
这就是我在表格中呈现它的方式。
<td>
<!-- If a subject belongs to a division or divisions list all the divisions
that belongs to the subject -->
@if(count($subject->divisions))
@foreach($subject->divisions as $division)
<a href="#" data-type="checklist" data-value="{{$division->id}}" data-title="Select divisions" data-name="division" class="division" data-pk="{{$division->id}}" role="button">
<span class="badge label-primary">{{$division->name}}</span>
</a>
@endforeach
@endif
</td>
这是我如何在具有表单的模型中呈现它。
<div class="form-group">
<label for="division">Level</label>
<p class="text-muted">Please select the division(s) the subject is taught within.</p>
@foreach($divisions as $division)
<label class="checkbox-inline">
<input type="checkbox" id="division_id" name="division_id[]" value="{{$division->id}}"> {{$division->name}}
</label>
@endforeach
</div>
问题是我在编辑表单中做了同样的事情,但不知道如何检查已分配给主题的值。
当用户单击编辑按钮时,是否有一种方法可以检查分配给主题的所有分区。
显示编辑模式的锚元素。
<td>
<a class="edit-modal" data-id="{{$subject->id}}" data-name="{{$subject->name}}" data-toggle="tooltip" title="Edit" href="#" role="button">
<i class="glyphicon glyphicon-edit text-info"></i>
</a>
</td>
这是我现在的脚本:
$(document).on('click', '.edit-modal', function(event) {
event.preventDefault();
/* Act on the event */
$('#edit-name').val($(this).data('name'));
$('#edit-modal').modal({
show: true,
backdrop:'static',
keyboard:false
});
});