我正在尝试删除我的数据透视表中的单个项目,我不知道如何使它工作?可能吗?如果我的方法错误,请纠正我。我将在下面展示我自己的方法。
这将获得属于术语ID的附加级别列表,并且当您单击“编辑”按钮时,您将转到第二页。
现在显示属于term_id的级别,如果要删除级别,可以在此处选中复选框。
现在这是我的问题:
<form action="#" method="POST" >
的路径以将其指向删除功能。这是我的控制人:
public function edit_term($id){
$terms = Term::with('level')->where('id','=',$id)->get();
return view('term_level.edit',compact('terms'));}
public function detach_term($id)
{//this is for deleting the data}
这是我的路线:
Route::get('term/get/{id}/edit', 'ListController@edit_term');
Route::post('term/get/{id}/edit', 'ListController@detach_term');
刀片:
<form action="term/get/{id}/deleteLevel/{levelId}" method="POST" >{{ csrf_field() }}
@foreach($terms as $term)
@foreach($term->level as $levels>
<input type="checkbox" name="level_id[]" value="{{ $levels->id }}">
{{ $levels->levelname }}
@endforeach
@endforeach
答案 0 :(得分:1)
在“ detach_term”中需要 $('.options').change(function () {
var value = $(this).val();
var data = "options"+value;
$.ajax({
type: 'POST',
url: php-file.php, // File where i got my php code
data: data,
success: function (result) {
$('#content').html(result);
}
});
});
ID和term
ID
路线
level
控制器操作
Route::post('term/{id}/deleteLevel', 'ListController@detach_term');
(term / get / 2 / edit)中的HTML格式(请确保您已从控制器发送public function detach_term(Request $request, $id)
{
$term = Term::with('level')->find($id);
if($term){
$postData = $request->all();
$term->level()->detach($postData['level_id']);
return redirect('term/get/' . $term->id);
}else{
abort(400, 'Invalid term');
}
}
进行查看)
$term
检查附加/分离 https://laravel.com/docs/5.6/eloquent-relationships#many-to-many