У меня есть следующий метод Laravel:Laravel: возвращает конкретные данные Relation
public function getTeam()
{
$userCharacters = UserCharacters::with('evolution')
->where('user_id','=',$this->id);
return $userCharacters->get();
}
Как вы можете видеть:
- каждый пользователь имеет символы, описанные в UserCharacters модели.
- каждый символ имеет эволюцию (я тоже связал его с самим символом пользователя).
Что мне нужно, чтобы вернуть только эволюций, где эволюция level
поле меньше или равно уровня пользовательского характера.
В настоящее время он возвращает всю эволюцию, учитывая уровень.
Я пытался добавить это where
условие в отношении evolution()
в UserCharacters
модели, но он не работает с Laravel With
:
public function evolution()
{
return $this->hasMany(Evolution::class,"character_id")->where('level','<',$this->level);
}
Надежда кто-то может помочь мне с этим, спасибо !
Возможно '$ this-> level' еще не установлен, когда вы звоните' UserCharacters :: с ('эволюция') '. Что делает 'dd (UserCharacters :: с ('evolution') -> toSql());' return? –
Возвращает '' select * from user_characters "' – TheUnreal
Я немного смущен. Попробуйте это: 'где ('level', '<', 'user_characters.level')' –