Mikail.Net

Yazılımcı günlüğü

Multiselect

Bu eklenti, birden fazla seçeneği olan alanlarda yöneticilere ve kullanıcılara daha fazla esneklik ve kontrol sağlar. Nova Multiselect Field, projelerinizde kullanıcıların birden fazla seçenek belirlemelerine olanak tanır. Özellikle, ilişkili veri gruplarında kullanıcılara çoklu seçim yapma imkanı sunar. Bu, e-ticaret sitelerinde ürünlerin birden fazla kategoriye atanması veya sosyal ağ projelerinde kullanıcıların birden fazla etiket seçerek paylaşımlarını daha iyi tanımlamalarına yardımcı olur.

Eklentinin kullanımı oldukça basittir. Laravel Nova yönetici paneline eklemek için öncelikle eklentiyi composer ile projenize dahil etmeniz gerekmektedir. Ardından, eklentiyi, uygun modelin kaynak dosyasındaki fields yöntemine ekleyerek kullanabilirsiniz. Eklentiyi başarıyla entegre ettikten sonra, kullanıcıların veri girişi sırasında seçenekler arasından birden fazla seçim yapabileceği bir alan oluşturulur.

Özetle, Nova Multiselect Field eklentisi, Laravel Nova projelerinde veri yönetimini daha etkin ve esnek hale getirir. Bu sayede, kullanıcılar veri girişi yaparken birden fazla seçenek belirleyebilir ve yöneticiler, projelerinde daha zengin ve kullanıcı dostu deneyimler sunabilir. Bu eklenti, e-ticaret siteleri, sosyal ağlar ve daha fazlası gibi birden fazla seçeneğin önemli olduğu her türlü uygulamada kullanılabilir.

BelongsToMany İlişkisi ile Kullanım Örneği

Nova Multiselect Field eklentisi, Laravel Nova projelerinde “BelongsToMany” ilişkisi için de kullanılabilir. Bu ilişki türü, bir modelin birden fazla modelle ilişkili olduğu durumları temsil eder. Örneğin, bir blog uygulamasında, bir yazının birden fazla kategoriye ait olabilmesi durumunu düşünebiliriz.

Öncelikle, BelongsToMany ilişkisini modelinize eklemelisiniz:

public function categories()
{
    return $this->belongsToMany(\App\Models\Category::class);
}

Daha sonra, kaynak dosyanıza asenkron seçenek sorgulaması için Multiselect alanını ekleyin:

Multiselect::make('Categories', 'categories')
  ->belongsToMany(\App\Nova\Resources\Category::class),

Alternatif olarak, sayfa yüklemesi sırasında seçenekleri sorgulamak ve kullanıcının mevcut seçenekleri görmek için önce yazmasına gerek kalmadan, ikinci argümanı ‘false’ olarak ayarlayabilirsiniz. Not: Sınırsız ilişki satır sayıları için önerilmez.

Multiselect::make('Categories', 'categories')
  ->belongsToMany(\App\Nova\Resources\Category::class, false),

Bu örnek sayesinde, bir yazının birden fazla kategoriye atanmasını sağlayan etkileşimli bir seçim alanı oluşturulur. Bu, kullanıcıların yazılarını daha iyi sınıflandırmasına ve yöneticilerin daha etkili bir veri yönetimi deneyimi yaşamasına olanak tanır.