En Çok Kullanılan Laravel Mysql Terminal Komutları, Veritabanı işlemleri (Tinker)

Mysqle root ile bağlantı kurmak

mysql -u root

UTF8 formatında Veritabanı oluşturmak:

 CREATE DATABASE laravel_api CHARACTER SET utf8 COLLATE utf8_general_ci;

İşlem yapmak üzere İlgili veritabanını seçmek

USE DATABASEADI

Migrate dosyalarını çalıştırmak için

php artisan migrate

Yeni Migrate oluşturmak için

 php artisan make:migration create_products_table --create=products

Çalıştırılan Son Migrate işlemini geri almak için

php artisan migrate:ROLLBACK

Çalıştırılan TÜM Migrate işlemini geri almak için

php artisan migrate:reset

Hem reset Hem de migrate işlemini tek seferde yapmak için

php artisan migrate:refresh

Bütün tabloları silmek için

php artisan migrate:fresh

Migrate işleminde ilgili alanı Boş kalabilir yapmak için

$table->text('ornekalan')->NULLABLE();

Laravelde DB sınıfına ait hazır metodları kullanmak için

php artisan tinker

Tinker terminalden kayıt eklemek için

DB::INSERT('insert into tabloadi (sutun1, sutun2, sutun3) values (?, ?, ?), ['aciklama 1 ', 'aciklama 2', 'aciklama 3'] ');

Tinker terminalden kayıtları listelemek için

 DB::SELECT('select * from products');

Tablodaki verileri listelemenin diğer yolu:

DB::TABLE('urunler')->GET();

Tablodaki tek bir kaydı çekmek için

>>> DB::TABLE('urunler')->WHERE('kolonadi','icerik1')->GET()

Tablodaki verilerden tek bir şarta göre veri çekmek için
Örn: fiyatı 10 üzerinde olanları listelemek:

DB::TABLE('urunler')->WHERE('fiyat','>', 10)->GET()

Tablodaki verilerden tek bir şarta göre tek veri çekmek için
Örn: fiyatı 10 üzerinde olanlardan ilkini almak için

DB::TABLE('urunler')->WHERE('fiyat','>', 10)->FIRST()

Doğrudan ID’ye ait değere göre veri çekmek için:

DB::TABLE('urunler')->find(1);

Dizi halinde veri eklemek:

DB::TABLE('urunler')->INSERT(['name'=>'Product 10', 'slug'=> 'product-10', 'price'=>100])

Tablodaki kayıt sayısını bulmak

 DB::TABLE('urunler')->COUNT()

Her tabloya karşılık gelecek model oluşturmak:

php artisan make:model modelAdi

modelAdi İsimli Modeldeki Verileri Listelemek

 \App\Models\modelAdi::GET()

Laravel 8’de tinker kullanarak nesne oluşturmak:

$product = NEW \App\Models\Product;

Laravel 8 Tinker nesne içindeki verilerin veritabanına kaydedilmesi

 $product->save()

Tablodaki bütün kolonlara veri ekleme yapılabilmesine olacak sağlayan kod model içinde kullanımı

protected $guarded = [];

Tabloda seçili bir alanı güncellemek;

 App\Models\Urun::find(2)->UPDATE(['price' =>45.50]);

factory ile fake veriler oluşturmak

User::factory()->make();

Kullanım örneği:

use App\Models\User;

public function test_models_can_be_instantiated()
{
    $user = User::factory()->make();

    // Use model in tests...
}

Çoklu kullanım örneğin 3 adet kullanıcı oluşturmak için


User::factory()->count(3)->make();

Veritabanına eklemek için


User::factory()->count(3)->create();

Tabloyu boşlatmak için

DB::table('users')->truncate();

Factory Template Dosyası oluşturmak için

php artisan make:factory OrnekFactory

OrnekFactory içindeki ayarlamaları yaptıktan sonra tinker çalıştırmadan önce

composer dump-autoload

komutunu çalıştırmakta fadya var aksi halde hata alabilirsiniz.

seeders çalıştırmak

seed yapısı için run fonksiyonu içine
– 10 kullanıcı oluşturmak için
– bunu yapabilmek için daha önce UserFactory.php dosyasının olması ve gerekli düzenlemenin yapılmış olması gerekiyor.

 User::factory()->count(10)->create();

Terminalden bu komutu çalıştırmak için

php artisan db:seed

DatabaseSeeder.php içinden işlemler;

– Tabloyu boşaltmak için

DB::statement("Truncate table users");

Özel Seeder Yapısı oluşturmak:

 php artisan make:seeder OrnekTableSeeder

Harici seeder dosyalarını çağırmak:

Yukarıdaki gibi oluşturulan OrnekTableSeeder dosyasını DatabaseTableSeeder.php içine aşağıdaki gibi çağırarak kullanabiliriz:

 $this->call(OrnekTableSeeder::class);

Tabloların içini tamamen silmek:

php artisan migrate:fresh

Tüm tabloları silmek ve ardından seed işlemiyle otomatik doldurmak için

php artisan migrate:fresh --seed

Controller’dan uyeler.blade.php’ye veri göndermek için

$uyeler = Uyeler::find(3);
return view('uyeler', array('uyeler'=>$uyeler));

Şarta göre veri listelemek

$uyeler = Uyeler::where('id',4)->first();
return view('uyeler', array('uyeler'=>$uyeler));

WhereRaw fonksiyonu ile şarta göre veri listelemek

$uyeler = Uyeler::whereRaw('id=?', array(1))->first();
return view('uyeler', array('uyeler'=>$uyeler));

Birden fazla satır veri listelemek

$uyeler = Uyeler::all();

satır sayısını bulmak

$uyeSayisi = Uyeler::where('id', '>', 0)->count();

Yukarıda değişkene aktarılanları uyeler blade sayfasına postalamak için

return view('uyeler', array('uyeler'=>$uyeler, 'uyeSayisi' =>$uyeSayisi));

Route yapısı içinde factory kullanımı

Route::get('/users', function (){

    return User::factory()->count(10)->make();

});

Controller oluştururken Otomatik model ve metodları oluşturmak

php artisan make:controller ProductController --resource --model=Product

Route Tanımlarını Listelemek

 php artisan route:list

Api Klasörü içinde model tanımlı oluşturmak

php artisan make:controller Api\ProductController --api --model=
product

apiResources Toplu Tanımlama Örneği:

Route::apiResources([
    'products' => 'App\Http\Controllers\Api\ProductController',
    'users' => 'App\Http\Controllers\Api\UserController'

]);

Product isimli modeldeki dataların hepsini listelemek

  return Product::all();
 

Product isimli modeldeki dataların hepsini listelemek 2. yol

  return response()->json(Product::all(), 200);
 

ID’ye dayalı veri kontrolü yapmak (girilen id değerine karşılık veritabanında veri yoksa hata mesajı vermek)

    public function show($id)
    {
        $product = Product::find($id);
 
        if ($product)
            return response($product, 200);
        else
            return response(['message' => 'Product not found'], 404);
 
       // return $product;
 
    }

Laravel 8 PUT / update işlemi için aşağıdaki yöntemler kullanılabilir

    public function update(Request $request, product $product)
    {
        //

          $input = $request->all();
          $product->update($input);

        return response([
            'data' => $product,
            'message' => 'Product updated.'
             ], 200);

    }

yada

    public function update(Request $request, product $product)
    {
        //


        $product->name = $request->name;
        $product->slug = Str::slug($request->name);
        $product->price = $request->price;
        $product->save();

        return response([
            'data' => $product,
            'message' => 'Product updated.'
             ], 200);

    }

Laravel 8 DELETE / silme işlemi için aşağıdaki yöntemi kullanabilirsiniz.

public function destroy(product $product)
{
//

$product->delete();

return response([

‘message’ => ‘Product deleted’
], 200);

}

Laravel 8 Paginate sayfalama kullanımı

– her sayfada 5 adet gösterim için

  return response(Product::paginate(5),200);

Laravel 8 Paginate Offset ve limit kullanımı:
– varsayılan değerleri girerek sayfalama

        $offset = $request->offset ? $request->offset: 0;
        $limit = $request->limit ? $request->limit: 10;

        return response(Product::offset($offset)->limit($limit)->get(),200);

Get kullanımı örnek:
– 11’den itibaren 5 kayıt ekrana gelecektir

http://127.0.0.1:8000/api/products?offset=10&limit=5