Vue'dan gelen arrayi Laravel Controller'da kaydetmek
Merhaba, vue ile laravel'deki controller'ıma veri gönderip gelen veriyi veritabanına kaydetmeye çalışıyorum.
vue datamdaki ilgili kısım bu:
data() {
return {
bloklar: [
{blok_adi: "", daire_sayisi: ""},
],
}
blok bilgilerini girdiğim formumu submit ediyorum. axios ile ilgili controller'a iletiliyor. array şeklinde göndermediğim vue verilerini controllerda işleyebiliyorum ama bloklar arrayini bir türlü işleyemedim.
öncelikle gönderdiğim veri controller'a geliyor. çünkü aynı controller'da farklı veriler de kaydediyorum sorun yok.
chrome dev tools'ta network kısmında da iletildiğini gördüğüm: $request->bloklar şeklinde gelen veri:
(buraya kadar her şey harika)
[{blok_adi: "A blok", daire_sayisi: 2}, {blok_adi: "B blok", daire_sayisi: 2}]
Bu array mi yoksa json mu ne olduğunu tam kavrayamadığım veriyi laravelde ayırıp veritabanına kaydedemedim. mesela en son yazdığım kod:
$bloklar = json_decode($request->bloklar);
for($i = 0; $i < count($bloklar); $i++){
$yeni_blok = new bloklar();
$yeni_blok->blok_adi = $bloklar[$i]->blok_adi;
$yeni_blok->site_id = $site_idsi; //bu satır veritabanı ilişkisi için
$yeni_blok->daire_sayisi = $bloklar[$i]->daire_sayisi;
$yeni_blok->save();
}
Edit:
hata kodumu eklememişim.
message: "Trying to get property 'blok_adi' of non-object", exception: "ErrorException", file...
bilgisi olan var mı? teşekkürler
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
Tekrardan merhaba,
sorunum çokta karışık bir sorun değilmiş. çözdüm.
bu kısmı
$bloklar = json_decode($request->bloklar);
for($i = 0; $i < count($bloklar); $i++){
$yeni_blok = new bloklar();
$yeni_blok->blok_adi = $bloklar[$i]->blok_adi;
$yeni_blok->site_id = $site_idsi; //bu satır veritabanı ilişkisi için
$yeni_blok->daire_sayisi = $bloklar[$i]->daire_sayisi;
$yeni_blok->save();
}
şu şekilde değiştirdim:
foreach($request->bloklar as $blok) {
$yeni_blok = new bloklar();
$yeni_blok->blok_adi = $blok['blok_adi'];
$yeni_blok->site_id = $site_idsi;
$yeni_blok->daire_sayisi = $blok['daire_sayisi'];
$yeni_blok->save();
}