2014-06-09 35 views
6

brand_id tablosunu içeren bir brand_id sütununa sahip belirli bir ürün elde etmek için Eloquent'i kullanmaya çalışıyorum, brands tablosunu içeren tablo, brand dizisi boş çıkıyor.Laravel Eloquent with() -> dönen null

Burada değiştirilmesi gereken bir şey var mı?

$product = Product::with('images')->with('brand')->select($fields)->where('display', '=', 1)->find($id); 

// Ürün modeli

class Product extends Eloquent { 
    ... 
    public function brand() 
    { 
     return $this->belongsTo('Brand'); 
    } 

// Marka modeli Bu adres

class Brand extends Eloquent { 
... 
public function products() 
{ 
    return $this->hasMany('Product'); 
} 
+0

ile şunları işaretlediniz: $ brand = $ product-> brand(); ? – num8er

+0

"$ fields" değişkeninde hangi alanlar var? –

cevap

9

: Sen brand için null

$product = Product::with('images', 'brand') 
        ->select($fields) 
        ->where('display', 1) 
        ->find($id); 

alıyorsanız, nasıl olması gerektiği Çünkü Eğer bazı özel alanlara sahip ve büyük olasılıkla Brand ile ilişki oluşturur products tablodan foreing_key seçmediyseniz, bu yüzden products tablo ardından foreign_key (muhtemelen brand_id) brand tablosunu içeriyorsa o foreign_key seçmek zorunda products tablosu da. Yani, foreign_key/brand_id'u $fields değişkenine ekleyin. İlişki oluşturucu anahtarı (FK) olmadan, Brand yüklenmeyecektir.

+1

Genius. Teşekkürler, tam olarak $ alanları hakkında haklısınız. – Jazzy

+0

Teşekkürler ve hoşgeldiniz :-) –