Episode - https://laracasts.com/series/lets-build-a-livewire-app/episodes/3
This episodes starts with models creation:
1php artisan make:model Podcast -mf
I usually forget about the handy parameters m
and f
to create migration and factory together with the model.
One of the migrations creates a foreign key:
1Schema::table('episodes', function (Blueprint $table) {2 $table->id();3 $table->foreignId('podcast_id')->constrained();4});
This is another thing I forget, what does constrained()
really does. Looking at Laravel docs, that’s the equivalent of:
1Schema::table('episodes', function (Blueprint $table) {2 $table->id();3 $table->unsignedBigInteger('podcast_id');4 5 $table->foreign('podcast_id')->references('id')->on('podcasts');6});
foreignId()
takes care of creating the unsigned big int, while constrained()
creates the reference to the external table id.
When creating the models Josh uses the $guarded
property like this:
1class Episode extends Model2{3 protected $guarded = ['id'];4}
This is the first time I see this way of handling mass assignment. Usually it’s either leave $guarded
empty or set $fillable
fields one by one. This seem a middle way between the two.