话题列表排序加个搜索框功能, 如何支持 withOrder 的排序?
尝试加入搜索功能, 只针对表中标题进行 $topic->where('title', like, $search) 简单的匹配搜索, 如何支持 withOrder 排序?
控制器中:
public function index(Request $request, Topic $topic, User $user)
{
$builder = Topic::withOrder($request->order);
if (!empty($search = $request->input('q', ''))) {
$builder->where('title', 'like', '%'.$search.'%');
}
$topics = $builder->paginate(10);
$filters = [
'search' => $search,
];
$active_users = $user->getActiveUsers();
return view('topics.index', compact('topics', 'active_users', 'filters', 'search'));
}
前端
<div class="card-header bg-transparent">
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link {{ active_class( ! if_query('order', 'recent')) }}" href="{{ Request::url() }}?order=default{{ isset($search) ? '?q='.$search : '' }}">Last reply</a>
</li>
<li class="nav-item">
<a class="nav-link {{ active_class(if_query('order', 'recent')) }}" href="{{ Request::url() }}?order=recent{{ isset($search) ? '?q='.$search : '' }}">Lastest post</a>
</li>
</ul>
</div>
// Javascript 代码:
<script>
var filters = {!! json_encode($filters) !!};
$(document).ready(function () {
$('.search-box form input[name=q]').val(filters.search);
// $('.search-form select[name=order]').val(filters.order);
})
</script>
尝试以后不行, 不能支持 withOrder 逻辑.
推荐文章: