Laravel'de "parameterize(): Argument #1 must be of type array, string given" Hatası ve Çözüm Yolları

"Laravel'de "parameterize(): Argument #1 must be of type array, string given" Hatası ve Çözüm Yolları"

Laravel ya da Lumen projelerinde veritabanı sorgularıyla çalışırken beklenmedik hatalarla karşılaşmak oldukça yaygındır. Bunlardan biri de sıkça rastlanan ve can sıkıcı olan:

Grammar::parameterize(): Argument #1 ($values) must be of type array, string given

Bu hata genellikle yanlış veri tipi kullanımı sonucunda ortaya çıkar. Peki bu hatayı neden alırız, nasıl çözebiliriz?


🧠 Hatanın Anlamı

Laravel’in sorgu derleyicisi (query grammar) bazı fonksiyonlar için dizi (array) tipi bekler. Ancak sen kodda string gönderdiğinde aşağıdaki gibi bir hata fırlatır:

TypeError: parameterize(): Argument #1 must be of type array, string given

Bu hata genellikle whereIn, whereNotIn, select, insert gibi fonksiyonlarda yanlış veri gönderildiğinde karşımıza çıkar.


💥 Örnek Hatalı Kod:

DB::table('kategoriler')->whereIn('id', '5')->get();

Yukarıdaki kodda whereIn metodu bir dizi bekliyor, ama '5' bir string.


✅ Doğru Kullanımı:

DB::table('kategoriler')->whereIn('id', ['5'])->get();

Ya da:

$ids = explode(',', '5,6,7'); // string'i parçala
DB::table('kategoriler')->whereIn('id', $ids)->get();

🧰 Diğer Yaygın Senaryolar

select() ile:

DB::table('urunler')->select('id,name')->get(); // Hatalı
DB::table('urunler')->select(['id', 'name'])->get(); // Doğru

insert() ile:

DB::table('test')->insert('name' => 'Ali'); // Hatalı
DB::table('test')->insert(['name' => 'Ali']); // Doğru

📈 SEO ve Performans İçin İpuçları

  • Her sorgu fonksiyonunun beklediği parametre türünü kontrol et.

  • Veritabanı hataları log'larına düzenli göz at.

  • Gelen verileri is_array() ile kontrol etmeden kullanma.


Laravel ve Lumen gibi modern framework'lerde küçük veri tipi hataları büyük sorunlara yol açabilir. Bu hatayı çözmek için array kullanımı zorunludur. Kodunuzu her zaman test edin ve Laravel'in dökümantasyonunu referans alın.

Aykhan Gasimzade Aykhan Gasimzade verified icon
Full Stack Developer

Merhaba! Ben Aykhan, 1999 doğumlu bir Azerbaycanlıyım ve 2017 yılından bu yana programlamayla ilgileniyorum. Teknolojinin büyülü dünyası beni her zaman etkilemiştir ve bu merakımı kendi blogumda paylaşarak daha geniş bir kitleyle buluşturmayı amaçlıyorum.