Je crée un blog à Laravel. J'ai deux tableaux - messages et catégories. Lorsque je souhaite modifier un article, j'ai un problème avec les catégories. Mon contrôleur de poste envoie des catégories à la vue, je peux les voir lors de l'édition, mais je ne sais pas comment définir la catégorie actuelle dans l'option de sélection. Les tables sont connectées:
public function posts(){
return $this->hasMany('App\Post');
}
public function category(){
return $this->belongsTo('App\Category');
}
Manette:
public function edit(Post $post)
{
$categories = Category::all();
return view('admin.posts.edit', compact('post'))->withCategories($categories);
}
Vue:
<form action="{{ route('posts.update', ["post" => $post->id]) }}" method="post" enctype="multipart/form-data" class="form-horizontal">
@csrf
<div class="form-body">
<div class="form-group">
<label class="col-md-3 control-label">Naslov</label>
<div class="col-md-4">
<input type="text" name='title' value='{{ old("title", $post->title) }}' class="form-control">
@if($errors->has('title'))
<div class='text text-danger'>
{{ $errors->first('title') }}
</div>
@endif
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">Kategorija</label>
<div class="col-md-4">
<select class="form-control" name="category_id">
@if(count($categories) > 0)
@foreach($categories as $category)
<option value="{{ $category->id }}">{{ $category->name }}</option>
@endforeach
@endif
</select>
@if($errors->has('category_id'))
<div class='text text-danger'>
{{ $errors->first('category_id') }}
</div>
@endif
</div>
</div>
Comment puis-je faire en sorte que la catégorie affiche la catégorie actuelle du message sélectionné dans l'option Sélectionner comme je l'ai pour le titre? value='{{ old("title", $post->title) }}'
Pour afficher le actuellement associé Category
, vous pouvez définir une option "sélectionnée" par défaut basée sur $post->category_id
:
<option value="{{ $category->id }}" {{ old('category_id', $post->category_id) == $category->id ? 'selected' : '' }}>{{ $category->name }}</option>
Il s'agit d'un ternaire simple qui définit l' selected
attribut de l'une des options en fonction de la old()
valeur ou, s'il old()
n'est pas défini, en fonction de la valeur de$post->category_id
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots