Eloquent-mallit ja migraatiot
Luokaa malleja ja tietokantamigraatioita Artisan-komennoilla.
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.phpMalliluokka
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ä?
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
- Eloquent-mallit ja migraatiot
- CRUD Eloquentilla
- Eloquent-suhteet
- Eager loading ja kyselyrajaukset