oktatas:web:back-end_framework:laravel:laravel_fajlkezeles
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalonElőző változat | |||
oktatas:web:back-end_framework:laravel:laravel_fajlkezeles [2025/04/22 13:21] – [CSV állomány] resahh | oktatas:web:back-end_framework:laravel:laravel_fajlkezeles [2025/08/01 11:14] (aktuális) – eltávolítva admin | ||
---|---|---|---|
Sor 1: | Sor 1: | ||
- | [[oktatas: | ||
- | ====== Laravel fájlkezelés ====== | ||
- | |||
- | * **Szerző: | ||
- | * Copyright (c) 2025, Rékási József | ||
- | * Licenc: [[https:// | ||
- | * Web: https:// | ||
- | |||
- | ===== Adatbázis tábla feltöltése szöveges állományból ===== | ||
- | Előfordulhat, | ||
- | ==== SQL állomány ==== | ||
- | Példa sql állomány drink.sql | ||
- | <code sql> | ||
- | INSERT INTO types (type) VALUES | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | |||
- | INSERT INTO packages (package) VALUES | ||
- | (' | ||
- | ('0.5l palack' | ||
- | ('1l palack' | ||
- | ('2l palack' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | ('1l üveg' | ||
- | ('2l üveg' | ||
- | |||
- | INSERT INTO drinks (drink, amount, type_id, package_id) VALUES | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | (' | ||
- | </ | ||
- | Az adatbázisnak és a tábláknak létezniük kell, futtasuk először a migrációs állományokat. A fájlt helyezzük el a / | ||
- | Készítsünk seeder állományt: | ||
- | < | ||
- | php artisan make:seeder DrinkSeeder | ||
- | </ | ||
- | A / | ||
- | Emeljük be a seederbe a működéshez szükséges osztályt. | ||
- | < | ||
- | use Illuminate\Support\Facades\DB; | ||
- | </ | ||
- | A seeder run() metódusát töltsük fel az alábbi kóddal: | ||
- | <code php> | ||
- | public function run(): void { | ||
- | |||
- | $sql = file_get_contents( __DIR__ . "/ | ||
- | |||
- | DB:: | ||
- | } | ||
- | </ | ||
- | Ez beolvassa az sql kiterjesztésű fájlt és az ott található utasításokat lefuttatja. Ha a táblákat egyesével szeretnénk feltölteni abban az esetben több sql állományra van szükség és külön seedereket kell készíteni hozzájuk. Ezeket összefogva a DatabaseSeeder osztályban tudjuk futtatni. | ||
- | Futtasuk le a DrinkSeedert. | ||
- | < | ||
- | php artisan db:seed --class=DrinkSeeder | ||
- | </ | ||
- | ==== CSV állomány ==== | ||
- | Példa CSV állomány drink.csv | ||
- | < | ||
- | id: | ||
- | 1: | ||
- | 2: | ||
- | 3: | ||
- | 4:Cabernet Sauvignon: | ||
- | 5: | ||
- | 6:Apple Juice: | ||
- | 7: | ||
- | 8: | ||
- | 9: | ||
- | 10:Green Tea:25:7:1 | ||
- | </ | ||
- | Készítsük el a seedert. | ||
- | < | ||
- | php artisan make:seeder DrinkSeeder | ||
- | </ | ||
- | A csv fájlok beolvasásához szükség van egy külső csomagra ami alapértelmezetten nem része a Laravel projektnek. Ezt telepíteni kell a composer segítségével. | ||
- | < | ||
- | composer require league/csv | ||
- | </ | ||
- | Ennek a csomagnak a Reader osztályát és a Storage osztályt be is kell emelni a seederbe. Ezen kívül még szükséges az adattábla modellje is, a feltöltés modellen keresztül fog megtörténni. | ||
- | <code php> | ||
- | use League\Csv\Reader; | ||
- | use App\Models\Drink; | ||
- | use Illuminate\Support\Facades\Storage; | ||
- | </ | ||
- | A Strorage osztályra azért van szükség mert a Laravel alapértelmezetten ezen az útvonalon keresi a csv kiterjesztésű fájlt: | ||
- | < | ||
- | / | ||
- | </ | ||
- | Természetesen máshol is el lehet helyezni a fájlt, de akkor definiálni kell az elérési útvonalat. | ||
- | A seeder run() metódusában helyezzük el az alábbi kódot: | ||
- | <code php> | ||
- | public function run(): void { | ||
- | | ||
- | $csv = Reader:: | ||
- | $csv-> | ||
- | |||
- | $records = $csv-> | ||
- | foreach( $records as $record ) { | ||
- | |||
- | Drink:: | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | ]); | ||
- | } | ||
- | } | ||
- | </ | ||
- | Ez a sor beolvassa a fájlt a megadott útvonalról: | ||
- | <code php> | ||
- | $csv = Reader:: | ||
- | </ | ||
- | A következő sorban kell megadni a tábla fejlécét, ha az állomány tartalmazza. Ez indexelve van, tehát, ha az első sor a fejléc abban az esetben az értéke: 0. | ||
- | <code php> | ||
- | $csv-> | ||
- | </ | ||
- | Ez a sor kiolvassa a sorokat a fájlból: | ||
- | <code php> | ||
- | $records = $csv-> | ||
- | </ | ||
- | Majd a foreach ciklus bejárja az adathalmazt és a Drink model create() metódusával kiírja az adatot. | ||
- | ==== JSON állomány ==== |
oktatas/web/back-end_framework/laravel/laravel_fajlkezeles.1745320879.txt.gz · Utolsó módosítás: 2025/04/22 13:21 szerkesztette: resahh