From c72d68ab46c041bee11b9786cb124d64e425bd27 Mon Sep 17 00:00:00 2001 From: Benjamin Takats Date: Thu, 1 Dec 2022 00:52:07 +0100 Subject: [PATCH] some new tables --- app/Http/Livewire/Frontend/Header.php | 5 ++- app/Http/Livewire/Frontend/SearchVenue.php | 16 ++++++++ app/Http/Livewire/Tables/CourseTable.php | 40 +++++++++++++++++++ app/Http/Livewire/Tables/VenueTable.php | 38 ++++++++++++++++++ app/Models/Venue.php | 4 +- .../views/livewire/frontend/header.blade.php | 7 ++-- .../livewire/frontend/search-course.blade.php | 14 ++++++- .../livewire/frontend/search-tabs.blade.php | 13 +++--- .../livewire/frontend/search-venue.blade.php | 13 ++++++ routes/web.php | 3 ++ 10 files changed, 135 insertions(+), 18 deletions(-) create mode 100644 app/Http/Livewire/Frontend/SearchVenue.php create mode 100644 app/Http/Livewire/Tables/CourseTable.php create mode 100644 app/Http/Livewire/Tables/VenueTable.php create mode 100644 resources/views/livewire/frontend/search-venue.blade.php diff --git a/app/Http/Livewire/Frontend/Header.php b/app/Http/Livewire/Frontend/Header.php index b388c9b4..6536026a 100644 --- a/app/Http/Livewire/Frontend/Header.php +++ b/app/Http/Livewire/Frontend/Header.php @@ -3,11 +3,13 @@ namespace App\Http\Livewire\Frontend; use App\Models\Country; +use Illuminate\Support\Facades\Route; use Livewire\Component; class Header extends Component { public Country $country; + public $currentRouteName; public string $c = 'de'; public function rules() @@ -19,12 +21,13 @@ class Header extends Component public function mount() { + $this->currentRouteName = Route::currentRouteName(); $this->c = $this->country->code; } public function updatedC($value) { - return to_route('search.cities', ['country' => $value]); + return to_route($this->currentRouteName, ['country' => $value]); } public function render() diff --git a/app/Http/Livewire/Frontend/SearchVenue.php b/app/Http/Livewire/Frontend/SearchVenue.php new file mode 100644 index 00000000..d9fc8c98 --- /dev/null +++ b/app/Http/Livewire/Frontend/SearchVenue.php @@ -0,0 +1,16 @@ +setPrimaryKey('id'); + } + + public function columns(): array + { + return [ + Column::make("Id", "id") + ->sortable(), + Column::make("Lecturer id", "lecturer_id") + ->sortable(), + Column::make("Name", "name") + ->sortable(), + Column::make("Created at", "created_at") + ->sortable(), + Column::make("Updated at", "updated_at") + ->sortable(), + ]; + } + + public function builder(): Builder + { + return Course::query() + ->whereHas('country', fn($query) => $query->where('code', $this->country)); + } +} diff --git a/app/Http/Livewire/Tables/VenueTable.php b/app/Http/Livewire/Tables/VenueTable.php new file mode 100644 index 00000000..46f9b4d5 --- /dev/null +++ b/app/Http/Livewire/Tables/VenueTable.php @@ -0,0 +1,38 @@ +setPrimaryKey('id'); + } + + public function columns(): array + { + return [ + Column::make("City id", "city_id") + ->sortable(), + Column::make("Name", "name") + ->sortable(), + Column::make("Street", "street") + ->sortable(), + ]; + } + + public function builder(): Builder + { + return Venue::query() + ->whereHas('city.country', fn($query) => $query->where('code', $this->country)); + } +} diff --git a/app/Models/Venue.php b/app/Models/Venue.php index d2bd6dc6..544fe9ea 100644 --- a/app/Models/Venue.php +++ b/app/Models/Venue.php @@ -11,7 +11,6 @@ class Venue extends Model /** * The attributes that are mass assignable. - * * @var array */ protected $fillable = [ @@ -23,11 +22,10 @@ class Venue extends Model /** * The attributes that should be cast to native types. - * * @var array */ protected $casts = [ - 'id' => 'integer', + 'id' => 'integer', 'city_id' => 'integer', ]; diff --git a/resources/views/livewire/frontend/header.blade.php b/resources/views/livewire/frontend/header.blade.php index 8ff775b3..0e196735 100644 --- a/resources/views/livewire/frontend/header.blade.php +++ b/resources/views/livewire/frontend/header.blade.php @@ -9,10 +9,9 @@ @auth diff --git a/resources/views/livewire/frontend/search-course.blade.php b/resources/views/livewire/frontend/search-course.blade.php index 04b21c8b..0a5b2abf 100644 --- a/resources/views/livewire/frontend/search-course.blade.php +++ b/resources/views/livewire/frontend/search-course.blade.php @@ -1,3 +1,13 @@ -
- {{-- Be like water. --}} +
+ {{-- HEADER --}} + + {{-- MAIN --}} +
+
+ + +
+
+ {{-- FOOTER --}} +
diff --git a/resources/views/livewire/frontend/search-tabs.blade.php b/resources/views/livewire/frontend/search-tabs.blade.php index 7f6f8974..5dfa5e13 100644 --- a/resources/views/livewire/frontend/search-tabs.blade.php +++ b/resources/views/livewire/frontend/search-tabs.blade.php @@ -7,10 +7,9 @@
@@ -26,11 +25,9 @@ Dozenten - Kurse + Veranstaltungs-Orte - Termine diff --git a/resources/views/livewire/frontend/search-venue.blade.php b/resources/views/livewire/frontend/search-venue.blade.php new file mode 100644 index 00000000..28a347ea --- /dev/null +++ b/resources/views/livewire/frontend/search-venue.blade.php @@ -0,0 +1,13 @@ +
+ {{-- HEADER --}} + + {{-- MAIN --}} +
+
+ + +
+
+ {{-- FOOTER --}} + +
diff --git a/routes/web.php b/routes/web.php index 577de85a..359211c0 100644 --- a/routes/web.php +++ b/routes/web.php @@ -24,6 +24,9 @@ Route::get('/{country:code}/suche/stadt', \App\Http\Livewire\Frontend\SearchCity Route::get('/{country:code}/suche/dozent', \App\Http\Livewire\Frontend\SearchLecturer::class) ->name('search.lecturer'); +Route::get('/{country:code}/suche/ort', \App\Http\Livewire\Frontend\SearchVenue::class) + ->name('search.venue'); + Route::get('/{country:code}/suche/kurs', \App\Http\Livewire\Frontend\SearchCity::class) ->name('search.course');