Arkadaşlar hepinize ayrı ayrı teşekkür ederim.
Sayenizde fonksiyonun çalışma mantığını tam olarak öğrenmiş oldum ve sorunumu çözdüm.
xsearch wrote:
$kategori = KategoriProduct::firstOrCreate(array('product_id' => $product_id));
$kategori->kategori_id = Input::get('kategori_id');
$kategori->product_id = $product_id; // <=== Bu satırı kaldırıp dener misin? Bence bu satırda sorun var
$kategori->save();
Hocam söylediğiniz satırı kaldırınca çalıştı fakat primary_id de takıldım onada
sergin wrote:
protected $primaryKey = 'product_key';
Saolsun Sergin yetişti
Hakanın sunduğu öneride çalışıyor ve pratik
hkan wrote:
[PHP]
if (ModelSınıfı::where('product_id', $kontrolEdilenDeger)->count() == 0)
{
$model = ModelSınıfı::create($modelinTumDegerleri);
}
[/PHP]
Son olarak çalışan haliyle kod bloğu şu şekilde (umarım faydalı olur)
//model dosyası KategoriProduct.php
class KategoriProduct extends Eloquent {
protected $table = 'kategori_product';
protected $primaryKey = 'product_id'; //burası önemli eğer id adında bir primary_key yoksa atama yapmanız gerekli aksi durumda sorgu otomatik id'i sorguluyor bkz=>sergin
protected $fillable = array('kategori_id', 'product_id');
}
//posttan gelen değerler product_id, kategori_id
//sayfadan gelen postu işleyen kod
$kategori = KategoriProduct::firstOrNew(array('product_id' => $product_id)); //burda ben 'firstOrNew' fonksiyonunu kullanmayı tercih ettim. 'firstOrCreate' fonksiyonu çalışmadı veya ben yapamadım.
// yukarıda ki satırda dikkat edilmesi gereken fonksiyon sonrası array içinde aramak istediğiniz değeri vermek.
$kategori->kategori_id = Input::get('kategori');
$kategori->save();
@hkan ayrıca önerin için teşekkür ederim zaten bende pivot ilişkilerini laravele yaptırıyorum fakat bu örnekte ürünün edit sayfasında farklı bir form var o yüzden.