• 08-08-2024, 22:36:06
    #1
    Merhabalar,

    Laravelde x adında bir tablom olsun, bu tabloda x.veri1 ve x.veri2 şeklinde iki farklı verim olsun ve veri1 verisi veri1 tablosundaki id değeri ile eşleşiyor, veri2 verisi ise veri2 tablosundaki id değeri ile eşleşiyor.
    Verileri çekebiliyorum Relations ile çekmiş olduğum genel veriyi ekrana yazdırdığımda tüm verilerin sorunsuz olarak geldiğini görebiliyorum fakat bu verileri ekrana yazdırırken forEach kullandığımda sadece id değerleri geliyor ve veri1 tablosunda eşleşen satırın verilerini çekip ekrana yazdıramıyorum.
    Bu konu ile ilgili olarak örnek verebilecek var mı?
    Desteğiniz için teşekkür ederim.
  • 08-08-2024, 22:41:13
    #2
    Kodunuzu paylaşın
  • 08-08-2024, 23:50:08
    #3
    Kod paylaşırsanız yardımcı olabilirim
  • 09-08-2024, 09:50:24
    #4
    dinarbey adlı üyeden alıntı: mesajı görüntüle
    Kodunuzu paylaşın
    Alperenkanca adlı üyeden alıntı: mesajı görüntüle
    Kod paylaşırsanız yardımcı olabilirim
    <?php
    namespace App\Models;
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Database\Eloquent\Relations\BelongsTo;
    use Illuminate\Database\Eloquent\Model;
    use App\Models\Branch;
    use App\Models\Publisher;
    class exampleBook extends Model
    {
        use HasFactory;
        protected $table = "veri1";
        public $primaryKey = "id";
        public $timestamps = true;
        protected $fillable = [
            "publisher",
            "branch"
        ];
        protected $guarded = [
            "id"
        ];
        
        public function branch()
        {
            return $this->BelongsTo(Branch::class, 'branch', 'id');
        }
        
        public function publisher()
        {
            return $this->BelongsTo(Publisher::class, 'publisher', 'id');
        }
    }
    $getAllData = veri1::with('branch')->with('publisher')->get();
    Örnek olarak bu şekilde, doğrudan json olarak ekrana yazdırdığımda veriler görünüyor sorunsuz bir şekilde ama örneğin bir tablo içerisinde yazdırmak istediğim zaman yazdırmakta sorun yaşıyorum.
    Uzun zamandır kullanmadım Laravel ondan da unutmuş olabilirim. Muhtemelen çok basit bir çözümü var fakat bulamadım bir türlü.
    Desteğinizi rica ederim.

  • 09-08-2024, 12:52:10
    #5
    Öncelikle model adınız(exampleBook) ile sorgunuz uyuşmuyor.

    doğru olduğunu varsayarsak relation dataya erişebilirsiniz:

    $getAllData = exampleBook::with('branch')->with('publisher')->get();
    
    foreach($getAllData as $data){
      $branchName = $data->branch->name;
      $publisherName = $data->publisher->name;
      dump($branchName,$publisherName); //dump
    }
  • 09-08-2024, 13:04:56
    #6
    brown adlı üyeden alıntı: mesajı görüntüle
    Öncelikle model adınız(exampleBook) ile sorgunuz uyuşmuyor.

    doğru olduğunu varsayarsak relation dataya erişebilirsiniz:

    $getAllData = exampleBook::with('branch')->with('publisher')->get();
    
    foreach($getAllData as $data){
      $branchName = $data->branch->name;
      $publisherName = $data->publisher->name;
      dump($branchName,$publisherName); //dump
    }
    Bende bu şekilde deniyorum fakat aşağıdaki gibi hata alıyorum. İki veride de name adında sütun mevcut.

  • 09-08-2024, 16:08:11
    #7
    relation obje yerine array olarak geliyor olabilir mi?

    $data->publisher['name'] şeklinde dener misiniz
  • 09-08-2024, 16:21:28
    #8
    brown adlı üyeden alıntı: mesajı görüntüle
    relation obje yerine array olarak geliyor olabilir mi?

    $data->publisher['name'] şeklinde dener misiniz
    Bunu da denemiştim, yine hata alıyorum.
  • 09-08-2024, 16:27:32
    #9
    Game Tablo:
    category_id int

    Category Tablo:
    id int primary
    name varchar 255

    Game Model:
    public function category()
    {
      return $this->belongsTo(Categories::class,'category_id');
    }
    bende durum bu şekilde çalışıyor, tablonuzu bilmiyorum ancak karşılaştırabilirsiniz