मूल प्रश्न का हल
आपने एक गैर-स्थैतिक विधि को सांख्यिकीय रूप से बुलाया। सार्वजनिक समारोह को मॉडल में स्थिर बनाने के लिए, इस तरह दिखेगा:
public static function {
}
सामान्य रूप में:
Post::get()
इस विशेष उदाहरण में:
Post::take(2)->get()
रिश्तों और दायरे को परिभाषित करते समय सावधान रहने वाली एक बात, कि मेरे पास एक ऐसा मुद्दा था जिसकी वजह से 'नॉन-स्टैटिक मेथड को स्टेटिकली नहीं कहा जाना चाहिए' त्रुटि तब होती है जब उन्हें उसी के नाम पर रखा जाता है, उदाहरण के लिए:
public function category(){
return $this->belongsTo('App\Category');
}
public function scopeCategory(){
return $query->where('category', 1);
}
जब मैं निम्नलिखित कार्य करता हूं, मुझे गैर-स्थैतिक त्रुटि मिलती है:
Event::category()->get();
मुद्दा, यह है कि लारवेल मेरी श्रेणी (स्कोपश्रेणी) के बजाय मेरी संबंध विधि का उपयोग कर रहा है। इस दायरे या रिश्ते का नाम बदलकर हल किया जा सकता है। मैंने रिश्ते का नाम बदलना चुना:
public function cat(){
return $this->belongsTo('App\Category', 'category_id');
}
कृपया देखें कि मैंने विदेशी कुंजी (श्रेणी_आईडी) को परिभाषित किया है क्योंकि अन्यथा लारवेल ने इसके बजाय cat_id की तलाश की होगी, और इसे नहीं मिला होगा, क्योंकि मैंने इसे डेटाबेस में श्रेणी_आईडी के रूप में परिभाषित किया था।
$obj->getAll()
फ़ंक्शन का उपयोग करें या स्थिर करें।