मॉडल के
class Model1 extends Eloquent {
public function model2() {
return $this->hasOne("Model2");
}
}
class Model2 extends Eloquent {
public function model1() {
return $this->belongsTo("Model1");
}
}
क्वेरी मुझे चाहिए
मैं सभी उदाहरणों से प्राप्त करना चाहता हूं Model1
जो करते हैं नहीं लीजिये Model2
। दूसरे शब्दों में, उस पर कोई संदर्भ नहीं है Model1
id
में Model2
तालिका स्तंभ model1_id
.
यह एक के साथ हासिल किया जा सकता है foreach
पाश, iterating सभी Model1
और जाँच अगर model2
एट्रिब्यूट है शून्य। लेकिन मैं इसे एलोकेंट प्रश्नों के साथ करना चाहता हूं।
उत्तर:
उत्तर № 1 के लिए 6आप कुछ इस तरह की कोशिश कर सकते हैं
Model1::has("model2", "=", 0)->get();
देख: लारवेल डॉक्स - एलोकेंट - क्वेरी संबंध
अद्यतन करें:
Model1::doesntHave("model2")->get();
उत्तर № 2 के लिए 1
यह हो सकता है:
$ids = Model2::where("model1_id", null)->lists("id");
$result = Model1::whereIn("id", $ids)->get();
संपादित करें:
मुझे बेहतर पढ़ने के लिए सीखने की आवश्यकता है :) मुझे लगता है कि यह नहीं है।
EDIT2:
यह हो सकता है। मैंने इसका परीक्षण किया, लेकिन अगर कोई त्रुटि है, तो इसे ठीक करना आसान होना चाहिए! (IRC चैनल # लैवल पर लैगबॉक्स की मदद से)
edit3:
ओके, इसलिए लैगबॉक्स के साथ #laravel पर चर्चा करने के बाद एक और बेहतर तरीका है ... उसका जवाब देखें