diff --git a/motorradig/app/Http/Controllers/TourController.php b/motorradig/app/Http/Controllers/TourController.php
index f7450a0..782c038 100644
--- a/motorradig/app/Http/Controllers/TourController.php
+++ b/motorradig/app/Http/Controllers/TourController.php
@@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use App\Tour;
+use App\Booking;
use Illuminate\Http\Request;
use Illuminate\Http\File;
use Illuminate\Support\Facades\Storage;
@@ -177,4 +178,16 @@ class TourController extends Controller
//
}
+ public function join($tour_id) {
+ $user=Auth::user();
+ Tour::join($tour_id,$user->id);
+ return redirect('/tour');
+ }
+
+ public function cancelBooking($tour_id) {
+ $user=Auth::user();
+ Booking::where('tour_id', $tour_id)->where('user_id', $user->id)->delete();
+ return redirect('/tour');
+ }
+
}
diff --git a/motorradig/app/Tour.php b/motorradig/app/Tour.php
index f33c539..0b200fa 100644
--- a/motorradig/app/Tour.php
+++ b/motorradig/app/Tour.php
@@ -3,6 +3,7 @@
namespace App;
use Illuminate\Database\Eloquent\Model;
+use Carbon\Carbon;
class Tour extends Model
{
@@ -25,14 +26,22 @@ class Tour extends Model
}
public static function join($tour_id,$user_id) {
+ error_log("Tour::join, tour_id=".$tour_id.", user_id=".$user_id);
+ /*
Booking::firstOrCreate(
['tour_id',$tour_id],
['user_id',$user_id],
- ['updated_at', \Carbon::now()]
+ ['updated_at', Carbon::now()]
);
+ */
+ $booking = Booking::firstOrCreate(
+ ['tour_id' => $tour_id, 'user_id' => $user_id],
+ ['tour_id' => $tour_id, 'user_id' => $user_id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now() ]
+ );
+ error_log($booking);
}
- public static function leave($tour_id, $user_id) {
+ public static function cancel($tour_id, $user_id) {
Booking::where('tour_id',$tour_id)->where('user_id',$user_id)->delete();
}
}
diff --git a/motorradig/app/User.php b/motorradig/app/User.php
index e79dab7..148f121 100644
--- a/motorradig/app/User.php
+++ b/motorradig/app/User.php
@@ -36,4 +36,12 @@ class User extends Authenticatable
protected $casts = [
'email_verified_at' => 'datetime',
];
+
+ public static function has_tour($tour_id, $user_id) {
+ $tour=Tour::find($tour_id);
+ $user=User::first($user_id);
+ $booking=Booking::where('tour_id', $tour_id)->where('user_id', $user_id);
+ if ($booking) return true;
+ return false;
+ }
}
diff --git a/motorradig/database/seeds/BookingSeeder.php b/motorradig/database/seeds/BookingSeeder.php
index 94532b7..14992de 100644
--- a/motorradig/database/seeds/BookingSeeder.php
+++ b/motorradig/database/seeds/BookingSeeder.php
@@ -13,38 +13,58 @@ class BookingSeeder extends Seeder
{
DB::table('bookings')->insert([
'user_id' => 1,
- 'tour_id' => 1
+ 'tour_id' => 1,
+ 'created_at' => Carbon::now(),
+ 'updated_at' => Carbon::now(),
]);
DB::table('bookings')->insert([
'user_id' => 2,
- 'tour_id' => 1
+ 'tour_id' => 1,
+ 'created_at' => Carbon::now(),
+ 'updated_at' => Carbon::now(),
]);
DB::table('bookings')->insert([
'user_id' => 3,
- 'tour_id' => 1
+ 'tour_id' => 1,
+ 'created_at' => Carbon::now(),
+ 'updated_at' => Carbon::now(),
]);
DB::table('bookings')->insert([
'user_id' => 4,
- 'tour_id' => 2
- ]);DB::table('bookings')->insert([
+ 'tour_id' => 2,
+ 'created_at' => Carbon::now(),
+ 'updated_at' => Carbon::now(),
+ ]);
+
+ DB::table('bookings')->insert([
'user_id' => 5,
- 'tour_id' => 2
+ 'tour_id' => 2,
+ 'created_at' => Carbon::now(),
+ 'updated_at' => Carbon::now(),
]);
DB::table('bookings')->insert([
'user_id' => 2,
- 'tour_id' => 3
+ 'tour_id' => 3,
+ 'created_at' => Carbon::now(),
+ 'updated_at' => Carbon::now(),
]);
DB::table('bookings')->insert([
'user_id' => 3,
- 'tour_id' => 3
+ 'tour_id' => 3,
+ 'created_at' => Carbon::now(),
+ 'updated_at' => Carbon::now(),
]);
DB::table('bookings')->insert([
'user_id' => 4,
- 'tour_id' => 3
+ 'tour_id' => 3,
+ 'created_at' => Carbon::now(),
+ 'updated_at' => Carbon::now(),
]);
DB::table('bookings')->insert([
'user_id' => 6,
- 'tour_id' => 3
+ 'tour_id' => 3,
+ 'created_at' => Carbon::now(),
+ 'updated_at' => Carbon::now(),
]);
}
}
diff --git a/motorradig/resources/views/tour/show.blade.php b/motorradig/resources/views/tour/show.blade.php
index 7b04c70..f93b6e4 100644
--- a/motorradig/resources/views/tour/show.blade.php
+++ b/motorradig/resources/views/tour/show.blade.php
@@ -64,10 +64,15 @@
-
+
Bearbeiten
Ok
- Teilnehmen
+
+ @if(!App\Tour::has_participant($tour->id, Auth::user()->id))
+ Teilnehmen
+ @else
+ Absagen
+ @endif
diff --git a/motorradig/routes/web.php b/motorradig/routes/web.php
index 7244809..9ff9d6b 100644
--- a/motorradig/routes/web.php
+++ b/motorradig/routes/web.php
@@ -44,6 +44,8 @@ Route::get('/admin/edit_activities', 'AdminController@edit_activities');
Route::post('/admin/store_activities', 'AdminController@store_activities');
Route::resource('/tour', TourController::class);
+Route::get('/tour/{tour_id}/join', 'TourController@join');
+Route::get('/tour/{tour_id}/cancelBooking', 'TourController@cancelBooking');
Auth::routes();