2016-05-15 128 views
-1

我有Character模型。一個Character可以演變,並且我想返回Evolution(與字符數據一起)如果Character可以演變。Laravel:返回非關係模型數據

這是我要做的事在我Character型號:

public function evolution() 
    { 
    return Evolution::where('character_id' , '=', $this->id) 
      ->where('level', '<=', $this->level) 
      ->first(); 
} 

的問題是,我試圖返回與With查詢keywoord(用戶模型),它不是一個關係都:

$userCharacters = UserCharacters::with('character') 
     ->with('evolution') 
     ->where('user_id','=',$this->id); 

我怎麼能輸出沿進化我UserCharacter不使用ForEach(其中手動添加它在Character模型)?

回答

0

你可以試試原始查詢。

也就是說,

DB:table('usercharacters') 
->join('character','usercharacter.id','=','character_id') 
->join('evolution','usercharacter.id','=','evolution_id') 
->where('your_where_clause') 
->first(); 
+0

請確保您正確添加外鍵ID。我剛剛向您展示了語法,如何實現。 –

0

將功能變成一個關係:

public function evolution() 
{ 
    return $this->hasOne(Evolution::class,'character_id')->where('level', '<=', $this->level); 
}