在我的数据库中,这是我的内容
我试图查询所有内容并按价格订购
$service_plans = DB::table('service_plans') ->orderBy('price', 'asc') ->get();
我一直在
我是否错过了任何我想做的事情或做了什么?
任何提示?
P.S。请记住,我使用的是jQuery DataTables
答案 0 :(得分:5)
由于您正在使用Datatables jQuery插件,请删除控制器查询中的orderBy
。
相反,通过数据表进行排序(默认情况下会这样做):
$('#datatable').DataTable({
"order": [[ 2, "asc" ]] // Order on init. # is the column, starting at 0
});
还有一个很好的小型Laravel包,用于设置数据的数据表。检查一下,看看它是否有用:https://github.com/yajra/laravel-datatables
答案 1 :(得分:-2)
您可以向$casts
模型添加ServicePlan
媒体资源。无论数据库数据类型如何,这都会将列视为隐式数据类型。
class ServicePlan extends Model
{
/**
* The attributes that should be casted to native types.
*
* @var array
*/
protected $casts = [
'price' => 'integer',
];
}
https://laravel.com/docs/5.2/eloquent-mutators#attribute-casting
答案 2 :(得分:-2)
价格字段的类型是字符串,因此在逗号后用2个数字将其更改为十进制。
在mysql控制台中运行:
ALTER TABLE service_plans MODIFY price DECIMAL(10,2);
!!!在对生产中的表进行修改时,请确保在调用ALTER TABLE
之前复制表:
CREATE TABLE service_plans_bak AS SELECT * FROM service_plans;