Mysql Laravel从多对多数据透视表中删除单个数据
我正在尝试删除透视表中的单个项目,,但我不知道如何使其工作?可能吗?如果我的方法错了,请纠正我。下面我将展示我自己的方法 这将获取属于术语id的附加级别列表,当您单击“编辑”按钮时,将转到第二页。。 现在显示属于术语_id的级别,如果要删除该级别,可以在此处选中复选框。 下面是我的问题:Mysql Laravel从多对多数据透视表中删除单个数据,mysql,laravel,routing,laravel-5.5,Mysql,Laravel,Routing,Laravel 5.5,我正在尝试删除透视表中的单个项目,,但我不知道如何使其工作?可能吗?如果我的方法错了,请纠正我。下面我将展示我自己的方法 这将获取属于术语id的附加级别列表,当您单击“编辑”按钮时,将转到第二页。。 现在显示属于术语_id的级别,如果要删除该级别,可以在此处选中复选框。 下面是我的问题: 如果选中特定复选框,如何删除所选级别 在我的表单操作中,我应该放置什么路径,以便将其指向delete函数 我需要在路由器中创建Route::post吗?执行删除操作 这是我的控制器: public fun
,以便将其指向delete函数 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');
这是我的路线:
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');
刀片:
{{csrf_field()}
@foreach($terms作为$term)
@foreach($term->level as$levels>
{{$levels->levelname}
@endforeach
@endforeach
您需要在“分离”术语中使用术语
id和级别
id
路线
Route::post('term/{id}/deleteLevel', 'ListController@detach_term');
控制器动作
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');
}
}
Html表单(term/get/2/edit)(请确保已将$term
从控制器发送到视图)
{{csrf_field()}}
@foreach($term->level as$levels>
{{$levels->levelname}
@endforeach
删除
选中的附加/分离添加有问题的html表单代码。然后我会相应地更改它,有不同的方式将数据从
表单
发送到控制器
。我需要查看您的html代码为什么添加为图像,您应该将其添加为文本,以便我可以复制和修改它。请添加文本并删除图像。对不起wait@Grace我已经更新了所有路线、控制器动作部分和添加的表单检查,然后发送给我们。