Php Laravel 5.1表格排序
我有一个简单的控制器函数来输出用户表,但我希望它按“approved”列排序,该列为1或0。我的控制器如下所示:Php Laravel 5.1表格排序,php,sorting,laravel,eloquent,Php,Sorting,Laravel,Eloquent,我有一个简单的控制器函数来输出用户表,但我希望它按“approved”列排序,该列为1或0。我的控制器如下所示: public function showAllUsers() { $users = \User::all(); return \View::make('admin.users.all', array('users' => $users)); } 如何按此列对表进行排序?我尝试过像SortBy('approved'、'desc')这样的函数,但没有效果 视图:
public function showAllUsers()
{
$users = \User::all();
return \View::make('admin.users.all', array('users' => $users));
}
如何按此列对表进行排序?我尝试过像SortBy('approved'、'desc')
这样的函数,但没有效果
视图:
@extends('layouts.admin')
@section('scripts')
<script type="text/javascript" src="../js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="../js/datatables.js"></script>
@stop
@section('stylesheets')
<link rel="stylesheet" type="text/css" href="{{url('css/datatables.css')}}" />
@stop
@section('content')
<div class="row">
<div class="col-lg-12">
<h1>Members</h1>
@if(Session::has('success'))
<div class="alert alert-success">
<p>{{
Session::get('success') }}</p>
</div>
@endif
</div>
<div class="col-lg-12">
<a type="button" class="btn btn-success" href="{{url('admin/members/add')}}">Add Member</a>
<br/>
<br/>
</div>
</div><!-- /.row -->
<div class="row">
<div class="col-lg-12">
<div class="table-responsive">
<table id="dattab" class="table table-hover table-striped tablesorter">
<thead>
<tr>
<th class="header headerSortUp">Membership ID <i class="fa fa-sort"></i></th>
<th class="header">Fullname <i class="fa fa-sort"></i></th>
<th class="header">Membership Type <i class="fa fa-sort"></i></th>
<th class="header">Status<i class="fa fa-sort"></i></th>
<th class="header">Join Date<i class="fa fa-sort"></i></th>
<th class="header">Actions</th>
</tr>
</thead>
<tbody>
@foreach ($users as $user)
<tr>
<td>{{$user->membership_id}}</td>
<td>{{$user->firstname." ".$user->lastname}}</td>
<td>{{$user->getMembershipType()}}</td>
<td>
@if($user->approved) Approved
@elseif (!$user->approved)
<a href="{{url('admin/members/approve/'.$user->id)}}" class="btn btn-success">Approve</a>
@endif
</td>
<td>
{{ (new DateTime($user->created_at))->format('d/m/Y') }}
</td>
<td>
<div class="btn-group">
<button class="btn btn-primary btn-sm dropdown-toggle" type="button" data-toggle="dropdown">
Choose Action <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="{{url('admin/members/edit/'.$user->id)}}">Edit</a></li>
<li class="divider"></li>
<li><a href="{{url('admin/members/delete/'.$user->id)}}" onclick="return confirm('Are you sure');">Delete</a></li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div><!-- /.row -->
@stop
@extends('layouts.admin'))
@节(“脚本”)
@停止
@节(“样式表”)
@停止
@节(“内容”)
成员
@if(会话::has('success'))
{{
会话::获取('success')}
@恩迪夫
会员身份证
全名
成员类型
地位
加入日期
行动
@foreach($users作为$user)
{{$user->membership\u id}
{{$user->firstname.”“$user->lastname}
{{$user->getMembershipType()}
@如果($user->approved)已批准
@elseif(!$user->已批准)
@恩迪夫
{(新日期时间($user->created_at))->格式('d/m/Y')}
选择行动
@endforeach
@停止
您将查找orderBy方法:
在这种情况下:
$users = \User::orderBy('approved','desc')->get();
您可以使用查询生成器让数据库在检索结果之前对结果进行排序。有关更多信息,请参阅文档 或者,您也可以在使用laravel集合从数据库检索它们之后对它们进行排序
这似乎根本不会影响桌子。是否有一种方法可以在表显示在视图上之前检查表的内容?在返回视图之前,请使用
dd($users)
。您希望结果按什么顺序排列?如何在视图中显示结果'desc'
将对1->0的结果进行排序,'asc
将对0->1的结果进行排序。我希望它首先显示0的结果。该表返回正确的顺序,但不按该顺序显示该表。它总是以ID的升序显示,所以可能已经在某些地方编码了,您如何在视图中显示结果?你能编辑你的问题并包含你视图的代码吗?听起来你在做一些调整顺序的事情。哈,奇怪。datatable是否应用于该表?如果是这样,试着移除,看看这是否解决了你的问题。
public function showAllUsers()
{
$users = \User::orderBy('approved', 'desc')->get();
return view('admin.users.all', compact('users'));
}
public function showAllUsers()
{
$users = \User::all()->sortBy('approved', 'desc');
return view('admin.users.all', compact('users'));
}