Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在laravel中使用同步功能时无法删除数据_Php_Laravel_Eloquent_Laravel 5.8 - Fatal编程技术网

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

Php 在laravel中使用同步功能时无法删除数据,php,laravel,eloquent,laravel-5.8,Php,Laravel,Eloquent,Laravel 5.8,我正在做一个laravel应用程序。在laravel中,我试图从数据透视表中删除一行及其相关数据。在此应用程序中,我有三个表: issues: id, title, description categories: id, name category_issues:(pivot table) id, issue_id, category_id 在laravel中,我试图从数据透视表中删除一行及其相关数据。我有这样的关系: Issue.php public function categorie

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

issues: id, title, description

categories: id, name

category_issues:(pivot table) id, issue_id, category_id
在laravel中,我试图从数据透视表中删除一行及其相关数据。我有这样的关系: Issue.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');
}
必须使用detach()来删除数据透视表数据

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

查看此文档,

研究之后,我发现将数据库模式更改为级联删除到子行是可行的。