İçeriğe atla
Üyelik kaydınızı yaparak son yazılan içeriklerden haberdar olun! ×

Laravel

  • makale
    24
  • yorum
    0
  • görüntüleme
    113.645

Laravel Migration Index


Doğuhan ELMA

70 görünüm

Index Oluşturma:
Laravel şema oluşturucu çeşitli indeks türlerini destekler. Aşağıdaki örnek yeni bir e-mail sütunu oluşturmakta ve değerlerinin benzersiz olması gerektiğini belirtmektedir. İndeksi oluşturmak için, unique metodunu sütun tanımına zincirleyebiliriz:

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
 
Schema::table('users', function (Blueprint $table) {
    $table->string('email')->unique();
});

 

Alternatif olarak, sütunu tanımladıktan sonra dizini oluşturabilirsiniz. Bunu yapmak için, şema oluşturucu planında unique yöntemini çağırmalısınız. Bu yöntem, benzersiz bir dizin alması gereken sütunun adını kabul eder:

$table->unique('email');

 

Bileşik (veya kompozit) bir dizin oluşturmak için bir index yöntemine bir dizi sütun bile aktarabilirsiniz:

$table->index(['account_id', 'created_at']);

 

Bir indeks oluştururken, Laravel tabloya, sütun adlarına ve indeks türüne göre otomatik olarak bir indeks adı oluşturacaktır, ancak indeks adını kendiniz belirtmek için yönteme ikinci bir argüman iletebilirsiniz:

$table->unique('email', 'unique_email');

 

Tablo da iki alanın birleşik ve benzersiz olmasını isteyebiliriz. Mesela, Bir kişinin sadece bir rolu tek kayıt olamasını isteyebiliriz.

$table->unique(['role_id', 'user_id']);

 

Fulltext için:

$table->fullText('body');

 

 

İndeksleri Silme:
Bir indeksi bırakmak için, indeksin adını belirtmelisiniz. Varsayılan olarak, Laravel tablo adını, indekslenen sütunun adını ve indeks türünü temel alarak otomatik olarak bir indeks adı atar. İşte bazı örnekler:

 

Command  
$table->dropPrimary('users_id_primary');  
$table->dropUnique('users_email_unique');  
$table->dropIndex('geo_state_index');  
$table->dropFullText('posts_body_fulltext');  
Schema::table('geo', function (Blueprint $table) {
    $table->dropIndex(['state']); // Drops index 'geo_state_index'
});

 

Foreign:

$table->dropForeign(['user_id']);

 

 

0 Yorum


Önerilen Yorumlar

Görüntülenecek yorum yok.

Misafir
Yorum ekle...

×   Zengin metin olarak yapıştırıldı.   Bunun yerine düz metin olarak yapıştır

  Yalnızca 75 emojiye izin verilir.

×   Bağlantınız otomatik olarak gömüldü.   Bunun yerine bağlantı olarak görüntüle

×   Önceki içeriğiniz geri yüklendi.   Düzenleyiciyi temizle

×   Görüntüleri doğrudan yapıştıramazsınız. URL'den resim yükleyin veya ekleyin.

×
×
  • Create New...