Laravel Eloquent ORM Kullanımı

Laravel Eloquent ORM Kullanımı

Hepinize merhaba dostlarım 😊. Yoğun ve bol kodlamalı bir haftanın ardından gelen pazar gününde yepyeni bir konu ile karşınızdayım 😊. Artık hafta içinde pazar gününün gelmesini (yan gelip yatış ve konfor alanınıza geçmenizden kastetmiyorum 😅) yeni bir konu öğrenmek için can attığınızı taaa bu kısımdan sezdiğimi sizlere açıkça belirtmek istiyorum. Ara sıra gelen teşekkür mesajları da bu sezgilerimin gerçekliğinin bir kanıtı olduğunu rahatça söyleyebilirim 😊

Çenemin düştüğünü ve konudan uzaklaştığımı görüp hiç de uyarmıyorsunuz tebrik ederim 😅.

Eveeet dostlarım bu hafta yani bu haftanın son günü olan pazar gününde sizlere beraber Laravel framework üzerinde Eloquent ORM ye giriş yapacağız. Bilen dostlarımın gözü yaşlı, bilmeyen dostlarım ise meraklı ve aynı zamanda anlatacaklarımı can kulağıyla dinlemeye geçmiş olduğunu seziyorum 😊. O halde sözümü daha fazla uzatmadan biraz Eloquent ORM konusundan bahsedeyim

Dostlarım Eloquent ORM konusuna bakacak olursak hatırlarsanız daha öncesinde Query Builder ile (okumayan dostlarım varsa buradan) yaptığımız işlemleri Active Record ve Modeller (model ve migration oluşturduğumuz konuya buradan) kullanarak hızlı bir şekilde gerçekleştirmemize yardımcı oluyor. Özellikle bu Eloquent ORM yi kullanmak sizlere web geliştirme sektöründe (özellikle web yazılımlarında Laravel kullanılan bir şirkette) çok ama çok büyük şekilde katkı sağlayacaktır. Hoşunuza gittiğinize eminim artık kodlama kısmına geçişimizi yapalım 😊

Öncelikle dostlarım hemen Laravel geliştirme ortamımızı kuralım. Bunun için hemen terminalimizi açalım ve "eloquent" isminde bir çalışma ortamı oluşturalım

laravel new eloquent

şeklinde kodlarımızı yazdık dostlarım. Veeee projemiz kuruldu. Bunu da gerçekten çalışıyor mu diye test edelim. Bunun için projemizin kurulu olduğu dizin içerisine gelip

php artisan serve

komutumuzu yazalım. Ekranımıza aşağıdaki gibi çıktı geliyor ise projemiz sorunsuz bir şekilde kurulmuş ve çalışıyor diyebiliriz

Ve bingooo 💯 proje ortamımız başarıyla kurulmuş. Şimdi ise bir veri tabanı oluşturalım. İsmi de "eloquent" olsun. Karakter tipi de "utf8_general_ci" olsun. Bu işlemi sizin yapacağınıza adım gibi eminim dostlarım bu kısım basit 😉

Daha sonrasında ise gelelim bizim .env dosyamıza. Bu kısımdaki veri tabanı ayarlama işlemlerini yapalım. Hemen .env dosyamızı açalım ve

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=eloquent  // bu vt ismimiz
DB_USERNAME=root    // bu sizin vt kullanıcı isminiz olacak benimkinde root yazıyor
DB_PASSWORD=          // bende şifre yok sizde varsa yazın yoksa boş bırakın :)

şeklinde ayarlamalarımızı yapalım. Bu ayarlamaları da yaptıktan sonra dostlarım hemen Model ve Migration oluşturma işlemimizi gerçekleştirelim. Oluşturacağımız tablomuzun ismi Developer olsun. Hemen terminalimizi açalım ve

php artisan make:model DeveloperModel -m

yazalım. Bizim için Laravel bir migration dosyası ve bir model dosyası oluşturacaktır dostlarım. Hemen database klasörü altındaki migration dosyamıza gidelim ve içerisini

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateDeveloperModelsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('developers', function (Blueprint $table) {
            $table->id();
            $table->string('name')->nullable();
            $table->string('surname')->nullable();
            $table->softDeletes();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('developers');
    }
}

şekildeki gibi düzenleyelim. Daha sonrasında ise dostlarım hemen app/Models klasörü altındaki DeveloperModel klasörümüze gelelim ve

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class DeveloperModel extends Model
{
    use HasFactory;
    use SoftDeletes;
    protected $table = "developers";
}

şeklinde ayarlamamızı yapalım. Bu ayarlamaları da yaptığımıza göre terminalimize dönelim ve

php artisan migrate

yazalım. Komutumuzu yazdıktan sonra dostlarım hemen eloquent isimli veri tabanımızın içerisine bakalım gerçekten tablomuz gelmiş mi

Şanslı günümüzdeyiz dostlarım 😊. Her şey tıkır tıkır işliyor. Şimdi bu tablomuza birazcık veri girelim. Ben bu tabloya benim için değerli olan hocalarımı gircem

şeklinde kayıtlarımızı oluşturduk dostlarım. Veee artık Eloquent olayına yavaştan yavaştan girişimizi yapalım.

Öncelikle routes klasörümüzün altındaki web.php dosyamızı açalım ve içerisindeki

<?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!
|
*/

Route::get('/', function () {
    return view('welcome');
});

şeklinde bize hazır olarak gelen kodlarımızı

<?php

use App\Models\DeveloperModel;
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!
|
*/

Route::get('/', function () {
    $developers = DeveloperModel::all();  // işte eloquent farkı :) tüm verilerimizi çektik
    foreach ($developers as $developer){
        echo "<b>İsim:</b> ".$developer->name." <b>Soyisim: </b>".$developer->surname." <br>";
    }
});

şeklinde değiştirelim. Şimdii eloquent ile yeni tanışan dostlarımın yüz şekli aynı şöyle oldu bunu cidden seziyorum

şeklinde şaşıran dostlarım var 😊. Bu kısımda gerçekleşen olayı özetleyecek olursak:

"Bizim veri tabanımızın ismini modelimize yazmıştık. Gelen all() methodu ile tablomuza (SELECT * FROM 'developers') kodu uygulandı ve verilerimiz ekranımıza bastırıldı 😊".

Şeklinde bir işlem gerçekleşti dostlarım. Şimdi Eloquent konusu ile yeni tanışan dostlarımın aklında hemen şu söylemler belirdi

Ben o zaman proje geliştirirken Query Builder yerine hep bunu kullanırım 😊.

 Benim de tercihim olan bir olaydır bu dostlarım 😉. Özellikle Query Builder ile kodu uzatmak yerine hızlı bir şekilde kısacık kodla veri getirmek gibi daha birçok işlem yapabiliriz 😊. Daha sonrasnda hemen ekran çıktımıza bakacak olursak dostlarım

şeklinde kodlarımızın başarıyla çalıştığını ve Eloquent ORM ile veri çekme işlemimizin sorunsuz bir şekilde gerçekleştiğini gördük. Ve sevinme sözcüğümüz olan Bingooo sözcüğünü hep bir ağızdan söylüyoruz 💯

Eveeeeet dostlarım 😊. Bu yazımda sizlere Laravel Framework'ü üzerinde Eloquent konusundan bahsettim ve örnek olarak da veri çekme işlemine değindim. Umarım faydalı olmuşumdur. Eksik veya hatalı bir bilgi aktarımı yapmış isem benimle iletişime geçmekten çekinmeyin. Konu başlarda biraz zor gelebilir dostlarım anlıyorum. Özellikle öğrenme süreçlerinde bu şekilde olayların olması doğaldır. Bu aşamada sizlerden istediğim tek şey her yazımda da dediğim gibi "İstikrarlı ve Azimli Olmanız, Bolca Pratik Yapmanız" olacaktır. Bu dediklerimi hayat felsefeniz yaptığınız sürece başarı sizler için kaçınılmaz olacaktır 😊

Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim 😊

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıLaravel Model Ayarlama İşlemleri
Sonraki YazıPHP Üzerinde SimpleImage Kullanımı
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz