Laravel列表按价格,价格描述按日期列出

时间:2015-04-05 17:08:33

标签: php mysql laravel

我有一个汽车销售网站的搜索结果页面,它是一个列表页面。 html模板上有一些选项,如:

 order by data , price , price des

我应该点击此选项订购结果。 客户并不想使用数据表。我该如何实现它?我知道如何使用laravel获取数据:

DB::table('<table name>')->orderBy('<field name>', '<direction>')->get();

但是我无法理解逻辑,因为在我使用数据搜索结果页面之后,如何查询并更改当前页面的顺序?

或者有技术吗?

2 个答案:

答案 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();

了解更多info about selects