话题列表排序加个搜索框功能, 如何支持 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 逻辑.

royxu
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

用的是同一个模板,我加一个话题总数,都报错。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!