Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Bir Salt php sorusu sormak istiyorum fonksiyonlarla ilgili .
User modelinde bulunan One to One ilişkimi bir fonksiyonda

public function GetBarcods () {
$this->barcods
}

bu şekilde kullanıyorum bundan oturum açmıuş kullanıcıya ait 3 adet değer geliyo bu değerleri dizi şekilde nasıl return edebilirim ve bu diziyi başka bir fonksiyona paramatre olarak nasıl gönderebilirim

yani

public function UseBarcodes ($barcodOne , $barcodTwo , $barcodThree) {
 //barcodlarla ilgili işlemler 
}

İkinci sorum ise fonksiyon değerlerini varsayılan olarak null olabilmesini sağlayabilirimiyim varsayılan null ama eğer parametre gönderirsem null değerini ezmesi gerekiyo

  • kursatcanciger bunu yanıtladı.
  • isset Barkodları array olarak şöyle alabilirsiniz:

    public function getBarcodes(): array
    {
        return $this->barcodes
            ->pluck('name')
            ->toArray();
    }

    UseBarcodes yöntemine de array verirsiniz.

    isset
    Merhaba, ilk sorunuzu tam olarak anlayamadım fakat 2. sorunuz için şöyle bir kullanım yapabilirsiniz;

    public function UseBarcodes ($barcodOne = null , $barcodTwo = null, $barcodThree = null) {
     //barcodlarla ilgili işlemler 
    }

    Teşekkürler , ilk sorumu şöyle düzenliyim

    user modelim

    class User extends Model
    {
        /**
         * Kullanıcıya ait Barkodlar
         */
        public function barcods(): HasOne
        {
            return $this->hasOne(Barcods::class);
        }
    
    
     public function GetBarcods ()
        {
           $MyBarcods = $this->barcods
         
        }
    
    
    
    }

    Kendi Bilgisayarımın başında değilim o yuzden şu GetBarcods fonksiyonu return $MyBarcods deyince neyi veriyo içine bakmadım ama bu ikinci fonksiyondan bir dizi döndürmem yani return array($Mybarcods) gibi bişe yapmam ve dizinin içindeki elamanları oluşturacagım 3. fonksiyona parametre olarak göndermem gerekiyo yani buna

    public function UseBarcodes ($barcodOne = null , $barcodTwo = null, $barcodThree = null) {
     //barcodlarla ilgili işlemler 
    }

      $MyBarcods = $this->barcods

      hiç bir şey döndürmez.

      2 modeli ilişkilendirince, 2 model arasında sonsuz ilişki kurmaz, user tablosunda belirteceğiniz userin diğer modeldeki verilerini döndrür.
      bu yüzden öncelikle karşı modelde useri tanımladıgınız bir sutun olmalı. Yani barkods tablosuna verileri kaydederken, bir user_id de eklemiş olmalısınız. Sonrasında useri çağırdıktan sonra (find ile) barkods dan veri isteye bilirsiniz.

      $barkods = User::find(1)->barkods;

      şeklinde kullanabilirsiniz. veya

      $barkods = User::find(1)->barkods;
      foreach ($barkods as $barkod) {
          // ...
      }

      veya

      $user = User::find(1);
      $user-barkods->item;
      • mgsmus

        Seviye 1379
      • En İyi Yanıtisset tarafından

      isset Barkodları array olarak şöyle alabilirsiniz:

      public function getBarcodes(): array
      {
          return $this->barcodes
              ->pluck('name')
              ->toArray();
      }

      UseBarcodes yöntemine de array verirsiniz.

      sağolun ben

      return  [
          $this->barcodes->barcodeOne,
          $this->barcodes->barcodeTwo
      ]

      şeklinde saçmalıyodum tekrar çok mersi

      @aeneas teşekkürler bu dediklerin farklı bir kullanıcının barcodlarını çekerken geçerli

      public function barcods(): HasOne
          {
              return $this->hasOne(Barcods::class);
          }

      bu ilişkiyi tanımlayabilmek için zaten senin de söylediğin gibi userin tanımladığı bir sutun olmalı , olmalıki ilişkiyi kurabileyim
      $this-> ifadesi o an çalıştığın modeli veriyo farklı bir model ile çalışıp farklı bir modelin barcodlarını almak istediğinde dediklerin geçerli olur yardımların için teşekkürler