У меня есть модель пользователя с массивом идентификаторов.Идентификатор может быть либо IP-адресом, либо чем-то еще.Пользователи могут быть забанены, и это делается через их идентификаторы.Однако я не могу выполнить такую логику, используя отношение Eloquent HasMany.
Я хочу этого, поскольку существует модель (запись) Ban, в которой идентификатор совпадает с одним из идентификаторов в массиве идентификаторов пользователя, а затемэто должно быть добавлено к тому, что имеет много отношений.
Я пытался использовать «HasMany» с «whereIn», но это не сработало, так как все равно будет искать взаимосвязь внешнего ключа, а затем применить ограничения «whereIn».Это не то, что я хочу.
Вот как я пытаюсь определить отношения пользователя с запретами.
public function bans()
{
// Due to how banning works, there might exist a ban record for
// each of the player's identifier (steam, IP address
// rockstar license, etc.), and it's essential to get all.
// All ban records where the identifier column equals one of
// the user's identifiers (array)
return $this->hasMany(Ban::class)->whereIn('identifier', $this->identifiers);
}
Ожидается, что он должен вернуть все записи банов, в которых есть одна изидентификаторы пользователя в столбце идентификаторов.Но это не работает, поскольку HasMany по-прежнему применяет проверку на равенство внешних ключей.
Заранее спасибо!