added Orte-Table

This commit is contained in:
chrosey 2017-07-08 10:26:50 +02:00
parent 8b98db74a2
commit 8cfa2762db
9 changed files with 109 additions and 3557 deletions

View File

@ -7,7 +7,10 @@ use Illuminate\Database\Eloquent\Model;
class Eintragung extends Model class Eintragung extends Model
{ {
protected $table = "eintragungen"; protected $table = "eintragungen";
protected $dates = ['kann_ab', 'kann_bis']; protected $dates = ['kann_ab', 'kann_bis', 'created_at', 'updated_at'];
protected $casts = [
'nicht_unbedingt' => 'boolean',
];
public function veranstaltung(){ public function veranstaltung(){
return $this->belongsTo('App\Veranstaltung'); return $this->belongsTo('App\Veranstaltung');

View File

@ -3,6 +3,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Veranstaltung; use App\Veranstaltung;
use App\Eintragung;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Http\Response; use Illuminate\Http\Response;
@ -66,8 +67,9 @@ class VeranstaltungController extends Controller
*/ */
public function show(Veranstaltung $veranstaltung) public function show(Veranstaltung $veranstaltung)
{ {
if ($veranstaltung->has('eintragungen')) { if ($veranstaltung->has('eintragungen')) {
$veranstaltung->eintragungen; $veranstaltung = $veranstaltung->with('eintragungen.user')->find($veranstaltung->id);
} }
return view('veranstaltung.show', $veranstaltung); return view('veranstaltung.show', $veranstaltung);
} }
@ -124,6 +126,12 @@ class VeranstaltungController extends Controller
public function enter(Request $request, Veranstaltung $veranstaltung) public function enter(Request $request, Veranstaltung $veranstaltung)
{ {
$eintragung = new Eintragung();
$eintragung->veranstaltung()->associate($veranstaltung);
$eintragung->user()->associate(\Auth::user());
if($eintragung->save()){
return redirect()->route('veranstaltung.index');
}
return response()->json($eintragung);
} }
} }

10
app/Ort.php Normal file
View File

@ -0,0 +1,10 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Ort extends Model
{
protected $table = "orte";
}

View File

@ -10,7 +10,7 @@ class Veranstaltung extends Model
protected $fillable = ['name','beginn','ende','geaste','hinweise']; protected $fillable = ['name','beginn','ende','geaste','hinweise'];
protected $dates = ['beginn', 'ende']; protected $dates = ['beginn', 'ende', 'created_at', 'updated_at'];
public function eintragungen(){ public function eintragungen(){
return $this->hasMany('App\Eintragung'); return $this->hasMany('App\Eintragung');
@ -19,4 +19,10 @@ class Veranstaltung extends Model
public function einteilungen(){ public function einteilungen(){
return $this->hasMany('App\Einteilung'); return $this->hasMany('App\Einteilung');
} }
public function getIstEingetragenAttribute(){
$amI = $this->eintragungen->count('user_id', "=", \Auth::id());
return $amI > 0;
}
} }

View File

@ -0,0 +1,46 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddOrtTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('orte', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
$table->string('name',50);
});
Schema::table('veranstaltungen', function (Blueprint $table) {
$table->integer('ort_id')->unsigned()->nullable();
$table->foreign('ort_id')->references('id')->on('orte');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('veranstaltungen', function (Blueprint $table) {
$table->dropColumn('ort_id');
});
Schema::dropIfExists('orte');
}
}

View File

@ -14,5 +14,7 @@ class DatabaseSeeder extends Seeder
// $this->call(UsersTableSeeder::class); // $this->call(UsersTableSeeder::class);
$this->call('ArbeitsplatzSeeder'); $this->call('ArbeitsplatzSeeder');
$this->command->info('Arbeitsplatz-table seeded!'); $this->command->info('Arbeitsplatz-table seeded!');
$this->call('OrteSeeder');
$this->command->info("Orte-table seeded!");
} }
} }

View File

@ -0,0 +1,22 @@
<?php
use Illuminate\Database\Seeder;
use App\Ort;
class OrteSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Ort::firstOrCreate(['name' => 'großes Haus']);
Ort::firstOrCreate(['name' => 'Studiobühne']);
Ort::firstOrCreate(['name' => 'Theatrium']);
Ort::firstOrCreate(['name' => 'Foyer']);
Ort::firstOrCreate(['name' => 'Domstufen']);
Ort::firstOrCreate(['name' => 'siehe Hinweise']);
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long