Eloquent-modeller og migreringer
Generer modeller og databasemigreringer med Artisan-kommandoer.
Eloquent-modeller og migreringer er en gratis leksjon i PHP Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i PHP Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i PHP Academy inneholder totalt 4 leksjoner.
Hva er Eloquent?
Eloquent er Laravels ActiveRecord-ORM. Hver databasetabell har en tilsvarende Model-klasse som representerer en rad og tilbyr spørringsmetoder.
Generere en modell
Bruk Artisan til å opprette en modell. Legg til -m for også å generere en migreringsfil.
$ php artisan make:model Post -m
# Creates:
# app/Models/Post.php
# database/migrations/xxxx_create_posts_table.phpModellklassen
En minimal Eloquent-modell trenger bare å utvide Model. Eloquent utleder tabellnavnet fra klassenavnet (snake_case i flertall).
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $fillable = ["title", "body", "user_id"];
}Migreringsfil
Migreringen definerer tabellskjemaet. Kjør php artisan migrate for å ta det i bruk.
<?php
public function up(): void
{
Schema::create("posts", function (Blueprint $table) {
$table->id();
$table->string("title");
$table->text("body");
$table->foreignId("user_id")->constrained()->cascadeOnDelete();
$table->timestamps();
});
}Kjøre migreringer
Bruk ventende migreringer på databasen.
$ php artisan migrate
# Rollback:
$ php artisan migrate:rollback
# Fresh (drop all and re-migrate):
$ php artisan migrate:fresh$fillable kontra $guarded
$fillable hvitelister kolonner for massetilordning. $guarded svartelister kolonner. Sett aldri $guarded = [] i produksjon uten grundig vurdering.
<?php
// Whitelist approach (recommended):
protected $fillable = ["title", "body"];
// Blacklist approach:
protected $guarded = ["id", "created_at"];Typekonvertering
Egenskapen $casts konverterer automatisk kolonneverdier til PHP-typer.
<?php
protected $casts = [
"is_published" => "boolean",
"metadata" => "array", // JSON column
"published_at" => "datetime",
];Skjulte og synlige kolonner
Egenskapen $hidden utelater kolonner fra JSON- og array-serialisering – nyttig for passord og token.
<?php
protected $hidden = ["password", "remember_token"];Egendefinert tabellnavn
Overstyr standardtabellnavnet med egenskapen $table.
<?php
protected $table = "blog_posts"; // instead of "posts"Myksletting
Legg til traiten SoftDeletes og en deleted_at-kolonne. Poster slettes ikke faktisk – de merkes med et tidsstempel og utelates fra vanlige spørringer.
<?php
use Illuminate\Database\Eloquent\SoftDeletes;
class Post extends Model {
use SoftDeletes;
}Tidsstempler
Eloquent administrerer som standard kolonnene created_at og updated_at. Sett $timestamps = false for å deaktivere dette.
Sammendrag
Eloquent-modeller kobles til databasetabeller. Bruk Artisan til å generere modeller og migreringer samtidig. Definer $fillable for sikker massetilordning. Bruk $casts for automatisk typekonvertering.
Hurtigsjekk
Hvilket Artisan-flagg genererer en migrering sammen med en modell?
Lær deg PHP med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 49
- Leksjoner
- 195
Ofte stilte spørsmål
Er leksjonen «Eloquent-modeller og migreringer» gratis?
Ja – hele teksten i «Eloquent-modeller og migreringer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av PHP Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i PHP Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Eloquent-modeller og migreringer»?
Generer modeller og databasemigreringer med Artisan-kommandoer. Du øver på PHP Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med PHP Academy?
Ingen tidligere erfaring er nødvendig. PHP Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Eloquent-modeller og migreringer»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne PHP Academy-leksjonen?
Ja. Alle PHP Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Eloquent-modeller og migreringer
- CRUD med Eloquent
- Eloquent-relasjoner
- Eager loading og spørringsområder