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

Ubuntu Server Disk Alanını Genişletmek

Bu yazı ubuntuda GParted kullanarak disk alanı genişletme konusunda içerik sağlıyor eğer sizi ilgilendiyorsa yazıya devam edebilirsiniz.
Elimizde 80 GB’lık bir alana kurulu UBUNTU SERVER 14.04 LTS var diyelim. Artık alan küçük geliyor ve Daha büyük bir disk takıp orada devam etmek istiyoruz.

Yapılacak Adımlar:
1) Var olan sistemin komple imajını almak (acronis true image 2019 ile sorunsuz alabilirsiniz) ve 500GB’lık diske atmak.
2) İmaj işlemini başarıyla yaptığımızı varsayarsak; Sistemi 500 GB’lık disk üzerinden başlatmak sorunsuz çalıştığından emin olmak
3) —Yaşanması muhtemel sorun—- > birebir imaj alınırsa (Disk to Disk) muhtemelen 500GB‘lık disk kendini 80 GB olarak gösterecektir ama siz dosya sistemi araçlarıyla bakıp tanımsız olarak geriye kalan 420GB boş alan görebilirsiniz işte yapılması gereken diğer adım bu alanı kurtarmak. Burada devreye GParted girecektir. Linux/Ubuntu sisteminize GParted yüklemek için

sudo apt-get update

ardından

sudo apt-get install gparted

yükledikten sonra GParted açınız:

ortada linux-swap alanı görünecektir. Buraya tıkladıktan sonra partition -> swap off seçilir.
Okumaya devam et Ubuntu Server Disk Alanını Genişletmek

Ubuntu Server’da Boş Disk Alanı Görmek

Aslında sadece UBUNTU değil diğer tüm linux sürümlerinde aynı komut iş yapıyor; açık kaynak kodlu web yazılım geliştiricileri en çok ubuntu serverile uğraştıkları için uzaktan erişim sağladıkları serverların dolu/boş hdd alanlarını görme ihtiyacı duyabilirler. Bu yazıda Ubuntu Server’da ve diğer LİNUX dağıtımlarında kullanabileceğiniz ve en çok işinize yarayabilecek komutlardan bahsettim.

1) Linux/Ubuntu boş alan kontrolü
df” komutu ile başlıyoruz. Bu komut ile dosya sistemi üzerindeki aygıt adını, blok sayısını, kullanılan alanı, boş alanı, kullanılan alanın toplam alana oranını ve bağlama (mount) noktasını gösterir.

2)Tüm dosya sistemindeki boş alanı görme

df -a” komutu yukarıdaki çıktıların aynısını verir ama alt sistemler dahil tüm dosya sistemini gösterir.

3) Dosya sistemini GB cinsinden görmek (En kullanışlı ve anlamlandırılabilir komut)
df -h” komutu ile dosyalarınızı gigabyte cinsinden görebilirsiniz.

Ubuntu Server’da en kullanışlı komuttur veri import/export yada sunucu yedekleme öncesi ihtiyaç duyulan alan kontrolü yapılırken “df -h” kullanılır.

Umarım faydalı olmuştur. İyi çalışmalar…