Вы можете пойти по пути, предложенному matticustard.
Однако иногда бывает сложно изменить структуру большого проекта, когда вам просто нужны небольшие изменения. Если ваша цель состоит в том, чтобы получить только тех пользователей, которые имеют «активный» статус и не хотят слишком сильно изменять текущую структуру, вы можете сделать следующее:
public function nnIndicaded() {
return "<li>".implode(' active</li>,<li>', User::where(['referrer_id' => $this->id, 'status' => 'active'])->pluck('name')->all())."</li>";
}
Кроме того, если вы решите пойти по-другому,вам не нужно выбирать все, вы можете просто получить имя и статус, если это единственные свойства, которые вам нужны, например:
$users = User::where('referrer_id', $this->id)->select('name','status')->get();
На основании вашего комментария выглядит, что у вас поле БД как "Активное"1 для активных пользователей и 0 для неактивных. Также я вижу, что вы хотели бы получать список неактивных пользователей отдельно.
Итак, для этого вы можете передать параметр в функцию следующим образом:
public function nnIndicaded($active=null) {
$where = ['referrer_id' => $this->id];
if ($active !== null) {
$where['Active'] = $active;
}
return "<li>".implode(' active</li>,<li>', User::where($where)->pluck('name')->all())."</li>";
}
Затем:
nnIndicaded(1)
вернет активных пользователей nnIndicaded(0)
вернет неактивных пользователей nnIndicaded()
вернет всех пользователей