2014-02-05 46 views
3

我有一個實例$personPerson,並且想檢查是否存在與外國實體(App)建立的關係。檢查Laravel/Eloquent中是否存在與外國實體的關係

people: id 
people_apps: person_id, app_id 
apps: id 

這些關係在Eloquent模型中正確映射。 什麼是檢查此的首選方法?

我能想到的唯一的辦法是一樣的東西

$foundApp = $person->apps->filter(function($a) use($searchAppId) 
{ 
    return $a->id == $searchAppId; 
}); 

if ($foundApp) {} 

,但可能有一個更好的辦法。

+0

我想簡單地檢查,看看是否數組持有人的應用程序的大小大於0. – Dave

+0

@Dave我需要檢查一個特定的應用程序ID – Znarkus

回答

2

您可以添加在模型中檢查自定義的getter

class Person extends Eloquent { 

    public function getHasAppWithId($id){ 
    return ($this->apps()->where('id', $id)->count() > 0); 
    } 

} 

在你的代碼

$person->hasAppWithId(25); 
+0

爲什麼不只是調用方法'hasAppWithId'? – Znarkus

+0

嗯,你可以刪除get。當我開始輸入時,我正在創建一個自定義getter,但是當你需要提供一個id時,這是不可能的。 – JackPoint

相關問題