我有一个下拉菜单,其中列出了我的数据库中的信息。我的菜单中有 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');
}
最佳答案
两种使用数据库或在 Laravel 集合上下文中执行的方法。
Sql方法
使用 dinstinct 关键字仅选择唯一的帖子。
$posts = Post::distinct('title')->all();
Laravel 集合方法
在您的帖子中使用独特的收集方法。
$posts = Post::all();
$uniquePosts = $posts->unique('title');
SQL
方法更为优化,但有时使用 Laravel 集合方法很容易。
关于laravel-从下拉菜单中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60363643/