feat: Add venue description to Venue API and update form view (#72ea2ba)

In the VenueController, the Venue API now includes a description of the venue
by concatenating the city name and street. This change is reflected in the
'bitcoin-event-form' view where the 'option-description' attribute now uses the
venue's description instead of the city name.
This commit is contained in:
HolgerHatGarKeineNode
2024-01-29 18:44:46 +01:00
parent 72ea2ba783
commit bb5b7ddd4e
2 changed files with 21 additions and 20 deletions

View File

@@ -17,26 +17,27 @@ class VenueController extends Controller
public function index(Request $request) public function index(Request $request)
{ {
return Venue::query() return Venue::query()
->with(['city:id,name,country_id', 'city.country:id,name,code']) ->with(['city:id,name,country_id', 'city.country:id,name,code'])
->select('id', 'name', 'city_id') ->select('id', 'name', 'city_id')
->orderBy('name') ->orderBy('name')
->when( ->when(
$request->search, $request->search,
fn(Builder $query) => $query fn(Builder $query) => $query
->where('name', 'ilike', "%{$request->search}%") ->where('name', 'ilike', "%{$request->search}%")
) )
->when( ->when(
$request->exists('selected'), $request->exists('selected'),
fn(Builder $query) => $query->whereIn('id', fn(Builder $query) => $query->whereIn('id',
$request->input('selected', [])), $request->input('selected', [])),
fn(Builder $query) => $query->limit(10) fn(Builder $query) => $query->limit(10)
) )
->get() ->get()
->map(function (Venue $venue) { ->map(function (Venue $venue) {
$venue->flag = asset('vendor/blade-country-flags/4x3-'.$venue->city->country->code.'.svg'); $venue->flag = asset('vendor/blade-country-flags/4x3-' . $venue->city->country->code . '.svg');
$venue->description = $venue->city->name . ', ' . $venue->street;
return $venue; return $venue;
}); });
} }
/** /**

View File

@@ -79,7 +79,7 @@
]" ]"
option-label="name" option-label="name"
option-value="id" option-value="id"
option-description="city.name" option-description="description"
/> />
</x-input.group> </x-input.group>