PHP Academy · Oppitunti

Eloquent-mallit ja migraatiot

Luokaa malleja ja tietokantamigraatioita Artisan-komennoilla.

Oppitunti 1/413 vaihetta

Eloquent-mallit ja migraatiot on ilmainen PHP Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu PHP Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. PHP Academy-kurssilla on yhteensä 4 oppituntia.

Mikä on Eloquent?

Eloquent on Laravelin ActiveRecord-ORM. Jokaista tietokantataulua vastaa Model-luokka, joka kuvaa yhtä riviä ja tarjoaa kyselymetodit.

Mallin luominen

Luokaa malli Artisanilla. Lisäämällä valitsimen -m luotte samalla myös migraatiotiedoston.

$ php artisan make:model Post -m
# Creates:
# app/Models/Post.php
# database/migrations/xxxx_create_posts_table.php

Malliluokka

Minimaalisen Eloquent-mallin tarvitsee vain periä Model-luokka. Eloquent päättelee taulun nimen luokan nimestä monikollisessa snake_case-muodossa.

<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $fillable = ["title", "body", "user_id"];
}

Migraatiotiedosto

Migraatio määrittelee taulun skeeman. Ottakaa se käyttöön suorittamalla php artisan migrate.

<?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();
    });
}

Migraatioiden suorittaminen

Ottakaa odottavat migraatiot käyttöön tietokannassa.

$ php artisan migrate
# Rollback:
$ php artisan migrate:rollback
# Fresh (drop all and re-migrate):
$ php artisan migrate:fresh

$fillable vs $guarded

$fillable määrittää sallitut sarakkeet mass assignmentia varten. $guarded määrittää estolistalla olevat sarakkeet. Älkää koskaan asettako tuotannossa arvoa $guarded = [] harkitsematta asiaa huolellisesti.

<?php
// Whitelist approach (recommended):
protected $fillable = ["title", "body"];

// Blacklist approach:
protected $guarded = ["id", "created_at"];

Tyyppimuunnokset

$casts-ominaisuus muuntaa sarakearvot automaattisesti PHP-tyypeiksi.

<?php
protected $casts = [
    "is_published" => "boolean",
    "metadata"     => "array",       // JSON column
    "published_at" => "datetime",
];

Piilotetut ja näkyvät kentät

$hidden-ominaisuus jättää sarakkeet pois JSON- tai taulukkomuotoisesta serialisoinnista — tämä on hyödyllistä salasanoille ja tokeneille.

<?php
protected $hidden = ["password", "remember_token"];

Mukautettu taulun nimi

Ohittakaa oletusarvoinen taulun nimi määrittämällä $table-ominaisuus.

<?php
protected $table = "blog_posts"; // instead of "posts"

Loogiset poistot

Lisätkää SoftDeletes-piirre ja deleted_at-sarake. Tietueita ei oikeasti poisteta, vaan ne merkitään aikaleimalla ja jätetään pois tavallisista kyselyistä.

<?php
use Illuminate\Database\Eloquent\SoftDeletes;

class Post extends Model {
    use SoftDeletes;
}

Aikaleimat

Oletusarvoisesti Eloquent hallinnoi sarakkeita created_at ja updated_at. Poistakaa tämä käytöstä asettamalla $timestamps = false.

Yhteenveto

Eloquent-mallit yhdistyvät tietokantatauluihin. Luokaa mallit ja migraatiot yhdessä Artisanilla. Määrittäkää $fillable mass assignmentin turvallisuuden varmistamiseksi. Käyttäkää $casts-ominaisuutta automaattisiin tyyppimuunnoksiin.

Pikatarkistus

Mikä Artisan-valitsin luo migraation mallin yhteydessä?

Aloita maksutta

Opi PHP tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
49
Oppitunnit
195

Usein kysytyt kysymykset

Onko oppitunti ”Eloquent-mallit ja migraatiot” ilmainen?

Kyllä – oppitunnin ”Eloquent-mallit ja migraatiot” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko PHP Academy-kurssin, päivitä CoddyKit PROhon. PHP Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Eloquent-mallit ja migraatiot”?

Luokaa malleja ja tietokantamigraatioita Artisan-komennoilla. Harjoittelet PHP Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni PHP Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin PHP Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Eloquent-mallit ja migraatiot”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä PHP Academy-oppitunnilla?

Kyllä. Jokainen PHP Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Eloquent-mallit ja migraatiot
  2. CRUD Eloquentilla
  3. Eloquent-suhteet
  4. Eager loading ja kyselyrajaukset
← Takaisin: PHP Academy