Add meals as JSON field on User

This commit is contained in:
Christopher C. Wells 2021-05-26 06:05:42 -07:00
parent c15f81ee6b
commit 7f3cde04ef
2 changed files with 37 additions and 0 deletions

View File

@ -3,6 +3,7 @@
namespace App\Models;
use App\Models\Traits\Sluggable;
use Illuminate\Database\Eloquent\Casts\AsCollection;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Foundation\Auth\User as Authenticatable;
@ -51,6 +52,8 @@ use Spatie\MediaLibrary\MediaCollections\Models\Media;
* @mixin \Eloquent
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\JournalDate[] $journalDates
* @property-read int|null $journal_dates_count
* @property \Illuminate\Support\Collection|null $meals
* @method static \Illuminate\Database\Eloquent\Builder|User whereMeals($value)
*/
final class User extends Authenticatable implements HasMedia
{
@ -66,6 +69,7 @@ final class User extends Authenticatable implements HasMedia
'username',
'password',
'name',
'meals',
'admin',
];
@ -82,6 +86,7 @@ final class User extends Authenticatable implements HasMedia
*/
protected $casts = [
'admin' => 'bool',
'meals' => AsCollection::class,
];
/**

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddMealsToUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->json('meals')->nullable()->after('name');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('meals');
});
}
}