laravel - удалить дубликаты из выпадающего меню - PullRequest
2 голосов
/ 23 февраля 2020

У меня есть выпадающее меню, в котором перечислены данные из моей базы данных. У меня есть 4 записи в моем меню, и я специально назвал две записи одинаковыми, чтобы увидеть, возвращает ли они обе записи. Тем не менее, он показывает дважды в моем раскрывающемся меню. Как я могу убедиться, что отображается только одно значение, НО возвращает оба сообщения.

Search.blade. php

@extends ('layouts.app')
@section('content')  

 {!! Form::open(['action' => 'SearchController@index', 'method' => 'GET']) !!}
 <div class="form-group">
<select name="distance" id="distance" class="form-control input-lg dynamic" data-dependent="state">
    <option value="">Choose an item</option>
    @foreach($posts as $post)
        <option value="{{ $post->id }}">{{ $post->distance }}</option>
    @endforeach
   </select>
   </div>
   <div class="form-group">
    {{ Form::Submit('submit', ['class' => 'btn btn-primary']) }}
  </div>
  @if($request)

            <p>{{ $request->title }}</p>
            <p>{{ $request->distance }}</p>
            <img src="{{$request->image}}" height = 200 width =200>

@endif

SearchController. php

 public function index(Request $request)
 {
   $posts = Post::all();

   $selectedPost = $request->has('distance')
       ? Post::find($request->distance)
       : null;

   return view('Pages.search', [
       'posts' => $posts,
       'request' => $selectedPost
   ]);

}

  public function store(Request $request)
  {
   // This will return all request data to your screen.
   return $request->all();
   return view('Pages.search');
   }

1 Ответ

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

Два подхода с использованием базы данных или в контексте Laravel коллекций.

Sql подход

Используйте ключевое слово dinstinct, чтобы выбрать только уникальные сообщений.

 $posts = Post::distinct('title')->all();

Laravel метод сбора

Используйте уникальный метод сбора в своих сообщениях.

 $posts = Post::all();

 $uniquePosts = $posts->unique('title');

SQL подход более оптимален, но иногда просто использовать методы Laravel коллекций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...