In this section, we will see how to select a dropdown value from a database when editing in Laravel 9. For this section, we will use the ternary operator and @selected Blade directives and @class directives. We will also see selected old values one to many relationships and many to many relationships.
Example 1
Laravel simple selected dropdown value using ternary operator.
<div class="mb-6">
<label class="flex flex-col block">
<span class=""> Select Status: </span>
<select class="block w-full mt-1" name="status">
<option value="published" {{ $blog->status == 'published' ? 'selected' : '' }}>
Published
</option>
<option value="draft" {{ $blog->status == 'draft' ? 'selected' : '' }}>
Draft
</option>
<option value="archived" {{ $blog->status == 'archived' ? 'selected' : '' }}>
Archived
</option>
</select>
</label>
</div>
Selected hold old value using laravel 9 @selected blade directives.
<div class="mb-6">
<label class="flex flex-col block">
<span class=""> Select Status: </span>
<select class="block w-full mt-1" name="status">
<option value="published" @selected($blog->status == 'published')>Published</option>
<option value="draft" @selected($blog->status == 'draft')>Draft</option>
<option value="archived" @selected($blog->status == 'archived')>Archived</option>
</select>
</label>
</div>
Style Selected edit value using @class blade directives.
<div class="mb-6">
<label class="flex flex-col block">
<span class=""> Select Status: </span>
<select class="block w-full mt-1" name="status">
<option value="published" @selected($blog->status == 'published')
@class([
'bg-purple-600 text-white' => $blog->status == 'published'
])>Published</option>
<option value="draft" @selected($blog->status == 'draft')
@class([
'bg-purple-600 text-white' => $blog->status == 'draft'
])
>Draft</option>
<option value="archived" @selected($blog->status == 'archived')
@class([
'bg-purple-600 text-white' => $blog->status == 'archived'
])
>Archived</option>
</select>
</label>
</div>
Example 2
laravel 9 selected dropdown category value. this is selected old value is laravel one to many relationships
<div class="mb-6">
<label class="block">
<span class="text-gray-700">Select Category</span>
<select name="category_id" class="block w-full mt-1 rounded-md">
@foreach ($categories as $category)
<option @selected($category->id == $post->category_id)
value="{{ $category->id }}">{{ $category->name }}</option>
@endforeach
</select>
</label>
</div>
Style color laravel 9 selected dropdown category value with @class blade directives.
<div class="mb-6">
<label class="block">
<span class="text-gray-700">Select Category</span>
<select name="category_id" class="block w-full mt-1 rounded-md">
@foreach ($categories as $category)
<option @selected($category->id == $post->category_id) value="{{ $category->id }}"
@class([
'bg-purple-600 text-white' => $category->id == $post->category_id
])>
{{ $category->name }}
</option>
@endforeach
</select>
</label>
</div>
Example 3
Laravel 9 selected edit tags value using @selected blade directives. Given dropdown value is using laravel many to many relationships.
<div>
<label for="tags" class="block mb-2 text-sm font-medium text-gray-900">
Select tags
</label>
<select id="tags" name="tags[]"
class="bg-gray-50 border border-gray-300 text-gray-900 rounded-lg block w-full p-2.5"
multiple>
@foreach ($tags as $tag)
<option value="{{ $tag->id }}" @selected($post->tags->contains($tag->id))>
{{ $tag->name }}
</option>
@endforeach
</select>
</div>
laravel 9 many to many selected relationships style edit dropdown value using @class and @selected.
<div>
<label for="tags" class="block mb-2 text-sm font-medium text-gray-900">
Select tags
</label>
<select id="tags" name="tags[]"
class="bg-gray-50 border border-gray-300 text-gray-900 rounded-lg block w-full p-2.5" multiple>
@foreach ($tags as $tag)
<option value="{{ $tag->id }}" @selected($post->tags->contains($tag->id))
@class([
'bg-purple-600 text-white' => $post->tags->contains($tag->id)
])>
{{ $tag->name }}
</option>
@endforeach
</select>
</div>