【发布时间】:2014-05-28 21:36:53
【问题描述】:
分页文档提供了有关如何为数据的分页链接添加排序的详细信息:
<?php echo $orders->appends(array('sort' => 'name', 'sort_dir'=>'asc'))->links();
生成这样的链接:
http://example.com/something?page=2&sort=name&sort_dir=asc
所以现在您有一个包含标题和值的表格以及一系列可以单击的分页链接。假设我想将标题更改为允许您按该标题排序的可点击链接。我将如何生成该 URL?
例如,假设我们当前的 URL 就是我上面所说的:
http://example.com/something?page=2&sort=name&sort_dir=asc
我想单击“名称”表头以更改排序方向。我想要的网址是:
http://example.com/something?page=2&sort=name&sort_dir=desc
我有一个控制器叫做:AdminController.php 这是使用的方法:
public function getAdmins() {
// CACHE SORTING INPUTS
$allowed = array('first_name', 'last_name', 'email', 'activated', 'crated_at'); // add allowable columns to search on
$sort = in_array(Input::get('sort'), $allowed) ? Input::get('sort') : 'first_name'; // if user type in the url a column that doesnt exist app will default to first_name
$order = Input::get('order') === 'asc' ? 'asc' : 'desc'; // default desc
$action = null;
// select all admins Group = 1
$admins = DB::table('users')
->join('users_roles', 'users.id', '=', 'users_roles.user_id')
->where('users_roles.role_id', '=' ,0)
->orderBy($sort, $order)
->paginate($this->perpage);
// check for actions
if (!is_null(Input::get('action')))
{
$action = Input::get('action');
if ($action == "add")
{
$this->layout->content = View::make('admin.admins-add');
}
}
else
{
// get current counter admin counts
$counter = $admins->getFrom();
View::share('counter', $counter);
View::share('sort', $sort);
View::share('order', $order);
// share admin with template
View::share('admins', $admins);
$this->layout->content = View::make('admin.admins');
}
}
1)。如何在我的视图页面中显示 Laravel 中的列标题链接?
谢谢
【问题讨论】:
-
当然使用javascript....这与服务器端无关。
-
我需要生成标题链接,当你点击名字时,它会改变sort = first_name等等
-
我明白了你在这里想要做什么......但这是客户端编码。不是服务器端。你在客户端做了什么来实现它?
-
在客户端我有一个带有标题名字姓氏电子邮件等的表格,我想制作这些链接,如果你点击 first_name,它将带你到:example.com/… 和姓氏标头将转到:example.com/…,如果 sort_dir 是 asc 则更改为 desc
-
当然你可以在服务器端做...检查答案