/ / लारवेल / एलोकेंट - क्वेरी - संबंध के साथ चयन करें - php, mysql, laravel, संबंधपरक डेटाबेस

Laravel / Eloquent - प्रश्न - रिश्ते के साथ चयन करें - php, mysql, laravel, relational-Database, eloquent

मॉडल के

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 पर चर्चा करने के बाद एक और बेहतर तरीका है ... उसका जवाब देखें