2014-01-16 38 views
1

問題是我需要從集合中拉取集合。我已經建立的模型和數據庫,以便這些關係工作:查詢集合中的一對一關係

用戶可以有很多談判

一個談判有一個RiderNegotiation

但是我不能執行此查詢:

$user->negotiations->riderNegotiation 

我想我可以在我的視圖文件中解決這個問題,如果我只是通過$ user-> negotiation並且通過協商進行解析。然而,我發現我不能使用isEmpty()這種方式。

@if($negotiations->riderNegotiation->isEmpty() 

在Laravel有沒有某種漂亮的把戲來做這種關係查詢?我覺得這是一個普遍的問題。

+0

嘗試is_null($ negotiations-> riderNegotiation) –

+0

@AyobamiOpeyemi,將無法工作,因爲$談判是一家集和方法 - > riderNegotiation不會進行這項工作。如果$談判是一種模式,它會起作用。 必須有一種方法可以從用戶處獲取riderNegotiations的集合,因爲它們僅由1關係分隔。我只是不知道該怎麼做。 –

回答

-2
$negotiations = User::find(Auth::user()->id)->negotiations; 

    $temp = array(); 

    foreach($negotiations as $negotiation) { 


     $temp = array_merge($temp,$negotiaton->riderNegotiation->toArray()); 
    }; 

一些資源很貴,但$ temp應該包含該用戶的所有騎手協商。

+1

這個答案似乎過於複雜,有點笨重。 -1 – 735Tesla

+0

我認爲答案在於有限制的渴望加載 –

0

hasMany返回一組元素,您不能在集合上調用hasOne。 你應該能夠做到:

$negociations = User::find(1)->negotiations; 
@foreach($negociations as $negociation) 
    echo get_class($negociation->riderNegotiation); //riderNegotiation 
@endforeach