2016-04-06 26 views
1

İki tablo var, biri onaylanmış projeler için, diğeri de sanatçılar için. "Sanatçılar tablosu" içinde yer alan "proje tablosu" ve "sanatçı adı" içindeki "proje adı" verilerinin verilerini almak istiyorum.İkinci tablodan bire bir ilişkide kayıtların alınması laravelde hata üretiyor 5.2

i olan iki ilişki oluşturduk

SANATÇI MODELİ İLİŞKİ

ONAYLANDI MODEL İLİŞKİ benim denetleyicisi olarak

public function artists_relation() 
{ 
    return $this->belongsTo('App\artists_details_model', 'id'); 
} 

i aşağıdaki kodu

$art_artist_details = approved_projects_model::with('artists_relation')->get(); 


    foreach ($art_artist_details as $artists_relationn) 
    { 
     echo $artists_relationn->category; 

     foreach ($art_artist_details as $artists_relationn){ 

       echo $artists_relationn->artists_relation->phone_no; 
      }    
} 
yazdım
public function approved_relation() 
{ 
    return $this->hasMany('App\approved_projects_model', 'artist_id'); 
} 

sorun Foreach sadece bir kez döngüler olduğunu ama ikinci döngü benim araştırma yapmış "olmayan nesnenin özelliğini almaya çalışırken" aşağıdaki hatayı veriyor bundan sonra echo $artists_relationn->artists_relation->phone_no;

ulaştığında bir hata veriyor ama onun gibi bir çıkmaz ulaşmış gibi. yardım lütfen. Her şeyden

cevap

1

Öncelikle, ikinci döngü gerekmez, bu nedenle kullanmak için yeterli:

$art_artist_details = approved_projects_model::with('artists_relation')->get(); 

foreach ($art_artist_details as $artists_relationn) 
{ 
    echo $artists_relationn->category; 
    echo $artists_relationn->artists_relation->phone_no;      
} 

ama ilişkiniz bakarak muhtemelen yanlış yabancı anahtar kullanıyorsunuz.

Sen münasebetini bu şekilde tanımlamalıdır:

public function artists_relation() 
{ 
    return $this->belongsTo('App\artists_details_model', 'artist_id'); 
} 

Ve ek olarak yapmak gerekir her zaman artists_relation rekoru eşleşen emin - değilse, bunun yerine kullanması gereken

echo $artists_relationn->artists_relation->phone_no; 

arasında:

echo $artists_relationn->artists_relation ? $artists_relationn->artists_relation->phone_no : 'none'; 
+0

Çok teşekkürler Marcin sorun yabancı anahtar ve benim kodun goo aşağıdaki neden olmamasının nedeni oldu d kodu uygulamaları, kod çalışmasına odaklandığım içindir. ama şimdi çalışıyor. –