Как избежать повторных данных при выборе с помощью Laravel? - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть этот выбор

enter image description here

Я получаю всю эту информацию из таблицы в моей базе данных ... поэтому у меня есть некоторые повторные строки ... Я хотел бы найти что-то вроде или что-то, чтобы избежать повторяющейся информации в выборе ... это мой выбор

<div class="form-group row col-xs-3 col-md-4" >
<label class="control-label col-md-4" >Cartera: </label>
<div class="col-md-8">
 <select name="carteras_id" id="carteras_id" class="form-control">
@foreach ($carteras as $cartera)
  <option value="{{ $cartera->carteras_id }}" class="form-control">{{ $cartera->cartera }}</option>
@endforeach
</select>
</div>

Это мой запрос

$carteras = DB::table('tbl_perimetros')
            ->join('tbl_lista_carteras', 'tbl_perimetros.carteras_id', '=', 'tbl_lista_carteras.id')
            ->get();

Ответы [ 4 ]

1 голос
/ 27 февраля 2020

Кажется, tbl_lista_carteras имеет много tbl_perimetros, поэтому, когда вы используете join для этих двух таблиц, данные tbl_lista_carteras будут дублированы, и вам нужно будет только отобразить tbl_lista_carteras данные, вы можете получить их из tbl_lista_carteras напрямую:

$carteras = DB::table('tbl_lista_carteras')
    ->select('id','cartera')
    ->get();

и отобразить их в своем представлении:

@foreach ($carteras as $cartera)
  <option value="{{ $cartera->id }}" class="form-control">{{ $cartera->cartera }}</option>
@endforeach
0 голосов
/ 27 февраля 2020

Попробуйте это:

$carteras = DB::table('tbl_perimetros')
    ->join('tbl_lista_carteras', 'tbl_perimetros.carteras_id', '=', 'tbl_lista_carteras.id')
    ->distinct()
    ->get();
0 голосов
/ 27 февраля 2020

Вы можете использовать метод group By в вашем Запросе :

$carteras = DB::table('tbl_perimetros')
            ->join('tbl_lista_carteras', 'tbl_perimetros.carteras_id', '=', 'tbl_lista_carteras.id')
            ->groupBy('tbl_perimetros.carteras_id')
            ->get();
0 голосов
/ 27 февраля 2020

Вы можете использовать unique('cartera') в коллекции, чтобы получать только записи с уникальными значениями в столбце cartera

$unique = $carteras->unique('cartera')
...