jeudi 11 juillet 2019

Laravel checkbox problem which I cannot update the pivot table

I'm working on a laravel application. In laravel I'm trying to update a row from a pivot table. In this application I have three tables:

issues: id, title, description

categories: id, name

category_issues:(pivot table) id, issue_id, category_id

In laravel I'm trying to update a row from a pivot table. I have this relationships:
Issue.php

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

Category.php

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

A issue can have many categories.

Html code for displaying category section:

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

                        <input type="checkbox" name="category[]" id="" value=""
                        >

                        <label for="">  </label>
                      @endforeach
                    </div>
                  </div>

Here is the update function file:

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
    $categoryIssue = new CategoryIssue;
    $cats = request('category');

     foreach ($cats as $cat) {
       $categoryIssue->updateOrCreate([
         'issue_id'=> $issue->id,
         'category_id' => $cat
       ]);
     }
     return redirect('issues')->with('success', 'Issue has been updated');
}




Aucun commentaire:

Enregistrer un commentaire