I have a basic article and tag system, with a Many to Many relationship. I manage to display all tags in the create function but I don’t know how to display all tags and tags checked in the edit function.
Article :
JavaScript
x
public function tags()
{
return $this->belongsToMany(Tag::class)->withTimestamps();
}
Tag :
JavaScript
public function article()
{
return $this->belongsToMany(Article::class)->withTimestamps();
}
function create :
JavaScript
public function create()
{
$article = new Article();
$tags = $article->tags = Tag::all();
return view('articles.create', compact('article','tags'));
}
function edit
JavaScript
public function edit(Article $article)
{
return view('articles.edit', compact('article'));
}
form
JavaScript
<div class="form-group">
@foreach($article->tags as $tag)
<label><input type="checkbox" name="tags[]" value="{{ $tag->id }}" /> {{ $tag->name }}</label>
@endforeach
</div>
really need help pls, it’s for a school project. and sorry for my english… create: screen for add an article edit : screen for edit an article
Advertisement
Answer
here I found it ! just needed a second foreach
JavaScript
@foreach ($tags as $tag)
<label><input type="checkbox" name="tags[]" value="{{ $tag->id }}"
@foreach ($article->tags as $article_tags)
{{ $article_tags->id == $tag->id ? 'checked' : '' }}
@endforeach>{{ $tag->name }}</label>
@endforeach
and in the create $tags= Tag::all();
thanks for the help anyway ^^