当前位置: 首页 > 知识库问答 >
问题:

在laravel中使用同步功能时无法删除数据

尚声
2023-03-14

我正在做一个laravel应用程序。在laravel中,我试图从数据透视表中删除一行及其相关数据。在此应用程序中,我有三个表:

issues: id, title, description

categories: id, name

category_issues:(pivot table) id, issue_id, category_id

在laravel中,我试图从透视表中删除一行,它是相关数据。我有这种关系:我ssue.php

public function categories() {
return $this->belongsToMany('App\Category', 'category_issues');
}

Category.php

public function issues() {
return $this->belongsToMany('App\Issue', 'category_issues');
}

一个问题可以有许多类别。

用于显示类别部分的Html代码:

<div class="form-group row">
                    <label for="category" class="col-md-4 col-form-label text-md-right">{{ __('Category :') }}</label>
                    <div class="form-check col-md-6">
                      @foreach ($categories as $category)

                        <input type="checkbox" name="category[]" id="{{ $category->id }}" value="{{ $category->id }}"
                        {{ in_array($category->id, $issue->categories->pluck('id')->toArray())  ? 'checked' : '' }}>

                        <label for="{{ $category->id }}"> {{ $category->name }} </label>
                      @endforeach
                    </div>
                  </div>

这里是更新功能文件:

public function update(Issue $issue)
{
    request()->validate([
      'title'=> ['required', 'min:3'],
      'description'=> ['required', 'min:3'],
      'category' => ['required']
    ]);

    $issue->title = request('title');
    $issue->description = request('description');
    $issue->save();

    //Category_Issue Update
    $cats = request('category');
    $issue->categories()->sync($cats);

    return redirect('issues')->with('success', 'Issue has been updated');
}

以下是删除功能文件:

  public function destroy(Issue $issue)
{
  $issue->categories()->delete();
  return redirect('issues')->with('danger', 'Issue deleted');
}

共有1个答案

萧德馨
2023-03-14

要删除数据透视表的数据,必须使用detach(),

 $issue->categories()->detach();

检查此文档https://laravel.com/docs/5.8/eloquent-relationships,

 类似资料:
  • 我正在尝试像过去在Android中一样使用HttpPost。我意识到它已从最近的Android版本中删除。按照类似StackOverflow问题的解决方案,我将其添加到我的Gradle依赖项中: 在Gradle同步后,我仍然无法导入HttpPost程序。事实上,组织。阿帕奇。http。客户方法包根本无法解析。 我还尝试了Apache HttpClient网站的建议,即在我的Gradle依赖项中使用

  • 我使用style.apply函数在打印Excel之前突出显示数据框的一些单元格,并希望删除没有突出显示任何单元格的行。 这将导致以下错误: ValueError:的结果 解决这个问题的合理方法是什么?是否有任何方法可以在apply函数中删除行?

  • 应用Firebase云消息传递依赖项时,Gradle同步失败。 我已经尝试了FCM的所有版本的应用程序,如17.0.0, 17.3.2, 15.0.0, 16.0.1等。

  • 更新:移动了删除部分,在setState之前,我得到了错误:一个被解雇的可解雇小部件仍然是树的一部分,每次我刷到解雇

  • 我正在从db检索一个集合,想要删除它。这是密码。 这就是错误所在。 我也试着给所有的列名。

  • 为什么我上传新图片时不能删除我的旧图片? 这是我用来存储数据和图像的控制器。我的文件图像名由nama_post_adps和$imageName组合存储,其中$imageName是对