php - Laravel 5.3 中的搜索栏以过滤表格

标签 php html laravel search laravel-blade

1) 我在 View 中添加了搜索栏:

{!! Form::open(['method'=>'GET','url'=>'home','class'=>'navbar-form navbar-left','role'=>'search'])  !!}

            <div class="input-group custom-search-form">
                <input type="text" class="form-control" name="search" placeholder="Search...">
                <span class="input-group-btn">
    <button class="btn btn-default-sm" type="submit">
        <i class="fa fa-search">i
    </button>
</span>

2) 在我的 Controller 中,我将所有用户显示在一个表中,搜索栏位于表的顶部

public function index()
{
    $user = User::all();

    $search = \Request::get('search');  the param of URI

    $users = User::where('name','=','%'.$search.'%')
        ->orderBy('name')
        ->paginate(20);

    return view('home',compact('users'))->withuser($user);

}

表格是这样的

 @foreach($user as $users)
                    <th scope="row">1</th>
                     <td><a href="{{ url('/user').'/'.$users->id }}">show</a></td>
                      <td>{{$users->name}}</td>
                    <td>{{$users->city}}</td>
                    <td>{{$users->phone}}</td>
                    <td>{{$users->street}}</td>
                    <td>{{$users->national_id}}</td>
                    <td>{{$users->name}}</td>

                </tr>
     @endforeach

我想要得到的是当我在栏中搜索时我想做一个这样的循环 @foreach($users 作为$user) {{ $user->name }} @endforeach 并将 View 替换为仅搜索到的名称。 这是索引的路径

    Route::get('/home', 'HomeController@index');

我怎样才能做到这一点?很抱歉提前问了这么长的问题。

最佳答案

您需要使用like 而不是=:

$users = User::where('name', 'like', '%'.$search.'%')
    ->orderBy('name')
    ->paginate(20);

另外,您正在尝试创建两个查询。更好的方法是创建 local scope :

public function scopeSearch($q)
{
    return empty(request()->search) ? $q : $q->where('name', 'like', '%'.request()->search.'%');
}

然后在 Controller 中使用它:

public function index()
{
    $users = User::search()->orderBy('name')->paginate(20);

    return view('home', compact('users'));
}

如果没有搜索参数,此代码将对所有用户进行分页,或者将筛选用户并对其进行分页。

关于php - Laravel 5.3 中的搜索栏以过滤表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41014940/

相关文章:

php - Ubuntu 20 终端 PHP 脚本输出

javascript - 为什么单个基于 JQuery 的内容 slider 不适合我? (bxSlider,js中的逗号)

php - Laravel 5 中 RouteCollection.php 中的 MethodNotAllowedHttpException

laravel - 在 laravel AppServiceProvider 上获取错误

javascript - 在 PHP 中从国家代码获取货币信息

php - 在 PHP echo 中将查询中的 id 与另一个查询中存在的 id 进行比较(以查看表 A id 是否存在于表 B 中)

java - 我可以保存/导出 html 页面输入数据并稍后恢复/加载吗?

html - 双普通和大型菜单

php - Laravel where 子句,以及 or 列表

php - Apache 非常高的页面加载时间