Bu yazda Laravel’de Controller ile Model üzerindeki veriyi okuyup View’e nasıl aktarılacağını öğreneceksiniz.
Laravel kullanarak bir controller oluşturduktan sonra, controller içinde bir model sınıfını kullanarak veritabanından veri okuyabilirsiniz. Daha sonra, okuduğunuz veriyi bir view dosyasına göndermek için view() fonksiyonunu kullanabilirsiniz.
Veritabanı bağlantısı yapıp model, controller ve view oluşturma aşağmalarına geçelim.
Veritabanı Oluşturma

Veritabanı bağlantısı için laravel dizinideki .env dosyasını açıp veritabanı bağlantısındakine uygun olarak değiştiriyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | .... DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=kutuphane DB_USERNAME=root DB_PASSWORD= .... |
PHP Artisan Kullanımı
Örnekte kullanılacak model yukarıdaki Ogrenci tablosu olacaktır. Bu işlemleri yapmak için bir tane OgrenciController
ve Ogrenci
nesnesi oluşturuyoruz.
1 2 3 4 | php artisan make:controller OgrenciController php artisan make:model Ogrenci |
Yukarıdaki kodu terminalde kullanarak uygun model ve controller oluşturuldu. İlgili dosyaları aşağıdaki gibi güncelliyoruz.
Model Oluşturma
app/Ogrenci.php
içindeki modeli aşağıdaki gibi güncelliyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Ogrenci extends Model { use HasFactory; protected $table = 'ogrenci'; protected $primaryKey = 'ogrno'; public $incrementing = false; } |
Yukarıdaki tabloyu varsayılan tablodan farklı olarak oluşturduğumuz için tablo adını, birincil anahtar durumunu ve otomatik artan olup olmadığını kendi tablo ayalarına göre güncelliyoruz.
Route Bağlantısı Oluşturma
İlk olarak web.php
içinde OgrenciController
‘da bulunan göster meteodunu çalıştırmak için gerekli yolu yazıyoruz.
app/routes/web.php
dosyasını açıp aşağıdaki gibi güncelliyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?php use Illuminate\Support\Facades\Route; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ use App\Http\Controllers\OgrenciController; Route::get('/', function () { return view('welcome'); }); Route::get('/ogrenci/{sinif}', [OgrenciController::class, 'goster']); |
Artık url adresini aşağıdaki gibi kullanarak ilgili kontrolün çalışmasını sağlayabiliriz.
1 2 3 | localhost:8000/ogrenci/11A |
İlgili goster
metodunu aşağıdaki gibi veritabanından verileri okuyup view göndereceğimiz Controller’ı aşağıdaki gibi yazıyoruz.
Controller Oluşturma
app/Http/Controller/OgrenciController.php
dosyasını açıp aşağıdaki gibi güncelliyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; use Illuminate\Http\Request; use App\Models\Ogrenci; class OgrenciController extends Controller { public function goster($sinif){ $ogrenciler = Ogrenci::where('sinif','=',$sinif)->get(); return view('liste', ['ogrenciler' => $ogrenciler]); } } |
Bu kod, “Controller” sınıfını genişleterek “OgrenciController” adlı bir PHP sınıfıdır. İçinde tek bir parametre olan “sinif” adlı bir public fonksiyon bulunur. Fonksiyon içinde, “Ogrenci” sınıfındaki $sinif parametresine uygulan olarak seçilen tüm kayıtları “get” metodu ile alır ve sonra “liste” adlı bir görünümü döndürür. Döndürülen görünüm, “ogrenciler” anahtarı ile alınan kayıtları içeren veri dizisi ile birlikte geçirilir.
View Oluşturma
liste adlı view oluşturmak için resurces/views/liste.blade.php
yolunu takip ediyoruz.
liste.blade.php dosyasını aşağıdaki gibi oluşturuyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tasarım Kodlama</title> </head> <body> <table> @foreach ($ogrenciler as $ogrenci) <tr> <td>{{ $ogrenci->ograd }}</td> <td>{{ $ogrenci->ogrsoyad }}</td> <td>{{ $ogrenci->sinif }}</td> <td>{{ $ogrenci->cinsiyet }}</td> </tr> @endforeach </table> </body> </html> |
Bu Laravel kodu, “ogrenciler” adlı bir veri dizisi içindeki tüm kayıtları bir HTML tablosu olarak görüntüler.
“@foreach” direktifi ile “ogrenciler” veri dizisi içindeki her bir kaydın değerini “ogrenci” adlı bir değişkene atar.
Tablo içinde, “ogrenci” adlı değişkenin “ograd”, “ogrsoyad”, “sinif”, ve “cinsiyet” özellikleri, HTML tablosu içindeki sütunlar olarak görüntülenir.
“@endforeach” direktifi ile “foreach” döngüsü sona erer ve HTML tablosu oluşturulmuş olur.
Sonuç
Özetle bu yazıda laravel ile model ve kontroller oluşturup bu yapıları kullanarak hazır olan veritabanı tablosuna nasıl bağlayacağınızı ve sorgulayacağınızı öğrendiniz. Ayrıca sorgulanan verileri blade ile nasıl ekranda göstereceğinizi de açıkladık.
Yorum Yap