我有一个汽车销售网站的搜索结果页面,它是一个列表页面。 html模板上有一些选项,如:
order by data , price , price des
我应该点击此选项订购结果。 客户并不想使用数据表。我该如何实现它?我知道如何使用laravel获取数据:
DB::table('<table name>')->orderBy('<field name>', '<direction>')->get();
但是我无法理解逻辑,因为在我使用数据搜索结果页面之后,如何查询并更改当前页面的顺序?
或者有技术吗?
答案 0 :(得分:1)
您需要将列名称和方向发送到控制器。在控制器中,您可以获得列,方向并将它们放入orderBy函数中。
您的视图中的链接看起来应该是正确的
http://www.yoururl.com/something?column=date&direction=asc
$sortable_fields = array("date", "price");
/* set the default the column sort field to date if there is no value was passed */
$column = in_array(Input::get('column'), $searchable_fields) ? Input::get('column') : 'date'
/* set the default sort direction to desc if there is no value was passed */
$direction = (Input::get('direction') == 'asc') ? 'asc' : 'desc';
/* Use where function for searching before do the order by */
$query = DB::table('<table name>') ;
if (Input::get('title')) {
$query->where('title', Input::get('title');
}
DB::table('<table name>')->orderBy($column, $direction)->get();
答案 1 :(得分:0)
因为您不想在数据表中执行操作。然后你应该进行ajax调用,以便在任何动作中获得结果,例如更改或onpress事件或任何你需要的动作。
在laravel:
您需要将orderBy
设为
DB::table('users')->orderBy('name', 'desc')->get();