Begin working on schools

This commit is contained in:
Matt Young 2024-05-27 21:02:57 -05:00
parent b8b75854d2
commit d99d25f770
7 changed files with 105 additions and 0 deletions

View File

@ -0,0 +1,10 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SchoolController extends Controller
{
//
}

11
app/Models/School.php Normal file
View File

@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class School extends Model
{
use HasFactory;
}

View File

@ -5,6 +5,7 @@ namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
@ -54,4 +55,9 @@ class User extends Authenticatable implements MustVerifyEmail
{ {
return $this->first_name . ' ' . $this->last_name; return $this->first_name . ' ' . $this->last_name;
} }
public function school(): BelongsTo
{
return $this->belongsTo(School::class);
}
} }

View File

@ -0,0 +1,23 @@
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\School>
*/
class SchoolFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
return [
//
];
}
}

View File

@ -1,5 +1,6 @@
<?php <?php
use App\Models\School;
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;

View File

@ -0,0 +1,37 @@
<?php
use App\Models\School;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('schools', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('address')->nullable();
$table->string('city')->nullable();
$table->string('state')->nullable();
$table->integer('zip')->nullable();
$table->timestamps();
});
Schema::table('users', function(Blueprint $table) {
$table->foreignIdFor(School::class)->nullable()->after('id')->constrained()->onUpdate('cascade')->onDelete('set null');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('schools');
}
};

View File

@ -0,0 +1,17 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class SchoolSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
//
}
}