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.

"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.