2014-06-09 16 views
6

मैं एक विशिष्ट उत्पाद प्राप्त करने के लिए एलोक्वेंट का उपयोग करने की कोशिश कर रहा हूं जिसमें brand_id कॉलम है जो brands तालिका में मानचित्र करता है, brand सरणी खाली वापस आ रही है।लार्वेल एलोक्वेंट के साथ() -> वापस लौटना

क्या यहां कुछ भी स्पष्ट है जिसे बदलने की जरूरत है?

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

// उत्पाद मॉडल

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

// ब्रांड मॉडल

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

क्या आपने इसे चेक किया है: $ brand = $ product-> brand(); ? – num8er

+0

'फ़ील्ड' चर में कौन से फ़ील्ड हैं? –

उत्तर

9

आप इस:

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

आप brand के लिए null हो रही है और यह हो सकता है इसलिये आप कुछ विशिष्ट क्षेत्रों है और संभवत: आपको लगता है कि Brand के साथ संबंध बनाता है products मेज से foreing_key का चयन नहीं किया है, तो आपके products तालिका तो foreign_key (शायद brand_id) brand की तालिका में शामिल करता है, तो आपको लगता है कि foreign_key से चयन करने के लिए है products टेबल भी। तो, $fields चर में बस foreign_key/brand_id जोड़ें। रिलेशन बिल्डर कुंजी के बिना (FK) Brand लोड नहीं किया जाएगा।

+1

प्रतिभा। धन्यवाद, आप लगभग $ फ़ील्ड के ठीक थे। – Jazzy

+0

धन्यवाद और आपका स्वागत है :-) –

संबंधित मुद्दे