订单在Laravel + jquery数据表中

时间:2016-07-15 18:28:31

标签: php laravel laravel-5 datatables

在我的数据库中,这是我的内容

enter image description here

我试图查询所有内容并按价格订购

$service_plans = DB::table('service_plans') ->orderBy('price', 'asc') ->get();

我一直在

enter image description here

我是否错过了任何我想做的事情或做了什么?

任何提示?

P.S。请记住,我使用的是jQuery DataTables

3 个答案:

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