• 05-10-2022, 11:31:13
    #1
    Merhaba,

    Laravel ile bir script geliştirmeye çalışıyorum fakat anlam veremediğim kafama takılan bir nokta var.
    Aşağıdaki kodu kullandığım zaman kendim elle bir değer girersem doğru veriyi çekiyor fakat eğer değişkenden bir veri gelirse veritabanındaki ilk veriyi çekiyor sadece.
    Bu durum neden kaynaklı olabilir anlamadım bir türlü.

    Model::find($ID);
    Bu şekilde veri genellikle yanlış geliyor.
    Model::find(1);
    Bu şekilde yaparsam sorunsuz bir şekilde doğru veriyi alabiliyorum.

    Güncelleme işlemini find() ile aldıktan sonra update() şeklinde yapıyordum fakat belirttiğim hata olduğu için güncelleme işlemlerinde de problem oluyor.
    Bu konuda yardımcı olabilirseniz sevinirim, şimdiden teşekkürler.

    İyi forumlar dilerim.
  • 05-10-2022, 11:37:27
    #2
    Controllera gelen veriyi dd($id); ile yazdirip $id degerine bakabilir misin, gelen $id verisi kac?
  • 05-10-2022, 12:38:55
    #3
    T1mSaH adlı üyeden alıntı: mesajı görüntüle
    Controllera gelen veriyi dd($id); ile yazdirip $id degerine bakabilir misin, gelen $id verisi kac?
    Eve geçine tekrar kontrol edeyim ama örneğin ID 2 geliyor, benim kendi ID'm 2.
    Ama çektiği veriyi ekrana yazdırdığımda 1i çekmiş gibi gösteriyor.
  • 06-10-2022, 15:57:55
    #4
    Üyeliği durduruldu
    Tablonuzun Primary key alanini 'id' disinda bir sey olarak belirlediyseniz, Model sinifinizda bunu ayarlamaniz lazim. Örnegin Primary key sutun ismini 'uuid' olarak ayarladiysan:

    class Category extends Model {
    
        protected $primaryKey = 'uuid';
    
    }
    Bunun disinda Route-Model binding kullanabilirsin

    Route::get('category/{category}', [Controllers\CategoryController::class, 'show'])->name('categories.show');
    Controller dosyanda:

    use App\Models\Category;
    
    ...
    
    public function show(Category $category)
    {
    
    }
    
    ...
    Böylece Model::find($id) ile yazmana gerek kalmaz.