From 9dd58c5abdc9be85be488c256b5954d0702454b1 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 15 Apr 2018 18:52:22 -0600 Subject: [PATCH] Add profile model, migration and controller Also added User model observer to create a profile when a new user is created. --- app/Http/Controllers/ProfileController.php | 10 +++++ app/Observer/UserObserver.php | 25 ++++++++++++ app/Profile.php | 10 +++++ app/Providers/AppServiceProvider.php | 4 +- app/User.php | 5 +++ ...018_04_16_002611_create_profiles_table.php | 40 +++++++++++++++++++ 6 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 app/Http/Controllers/ProfileController.php create mode 100644 app/Observer/UserObserver.php create mode 100644 app/Profile.php create mode 100644 database/migrations/2018_04_16_002611_create_profiles_table.php diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php new file mode 100644 index 000000000..815a14ce4 --- /dev/null +++ b/app/Http/Controllers/ProfileController.php @@ -0,0 +1,10 @@ +has('profile')->count() == 0) { + $profile = new Profile; + $profile->user_id = $user->id; + $profile->username = $user->username; + $profile->save(); + } + } + +} \ No newline at end of file diff --git a/app/Profile.php b/app/Profile.php new file mode 100644 index 000000000..2cb0b4635 --- /dev/null +++ b/app/Profile.php @@ -0,0 +1,10 @@ +hasOne(Profile::class); + } } diff --git a/database/migrations/2018_04_16_002611_create_profiles_table.php b/database/migrations/2018_04_16_002611_create_profiles_table.php new file mode 100644 index 000000000..4014e8cd4 --- /dev/null +++ b/database/migrations/2018_04_16_002611_create_profiles_table.php @@ -0,0 +1,40 @@ +increments('id'); + $table->unsignedInteger('user_id')->nullable(); + $table->string('username')->nullable()->unique()->index(); + $table->string('name')->nullable(); + $table->string('bio', 150)->nullable(); + $table->string('location')->nullable(); + $table->string('website')->nullable(); + $table->string('remote_url')->nullable(); + $table->text('keybase_proof')->nullable(); + $table->boolean('is_private')->default(false); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('profiles'); + } +}