2016-05-15 4 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); 

どのように私は(Characterモデルで手動で追加します)ForEachを使用せずに、私のUserCharacterと一緒に出力進化をできますか?

答えて

0

生のクエリを試すことはできますか?

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

。私はちょうどあなたに構文を示しました、どのように達成することができます。 –

0
は関係一つに機能をオン

、次のとおりです。あなたが正しくForeignKeyのIDを追加していることを確認してください

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