は、ここで私はORDERBY私のデータベースで
を取得保管価格で$service_plans = DB::table('service_plans') ->orderBy('price', 'asc') ->get();
をすべて、オーダーを照会しようとした私は
持っているものです
それとも私がここにはないと思われることは何ですか?
ヒント
P.S.私はjQuery DataTablesを使用しています。
は、ここで私はORDERBY私のデータベースで
を取得保管価格で$service_plans = DB::table('service_plans') ->orderBy('price', 'asc') ->get();
をすべて、オーダーを照会しようとした私は
持っているものです
それとも私がここにはないと思われることは何ですか?
ヒント
P.S.私はjQuery DataTablesを使用しています。
Datatables jQueryプラグインを使用しているので、コントローラのクエリでorderBy
を削除してください。
代わりに、並べ替えを経由して(デフォルトではそうでしょう)のDataTable:
$('#datatable').DataTable({
"order": [[ 2, "asc" ]] // Order on init. # is the column, starting at 0
});
もデータを設定しますDataTableのためのちょっといいLaravelのパッケージがあります。それを確認して、それが役に立つかどうかを確認してください:
私はそれが私のシナリオに従って最もクリーンな方法だと思う。 – ihue
私はまだデータベース側を並べ替えるか、別のソリューションを使用する場合でも、サーバーサイドをまだソートしています。 ;) –
プロパティを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
問題は価格フィールドのデータ型にありません。 jQuery DataTablesは、デフォルトで最初の列でテーブルをソートします。詳細は、[answer by Mike Barwick](http://stackoverflow.com/a/38403431/3549014)を参照してください。 –
が理にかなっています。これはラベールの問題ではありません - おそらくラベールのタグを削除する必要がありますか? – swatkins
OPはLaravelを使用しているので、タグ 'laravel'が意味を持ちます。 [Mike Barwick](http://stackoverflow.com/a/38403431/3549014)LaravelがjQueryと連携する優れた[yajra/laravel-datatables](https://github.com/yajra/laravel-datatables)パッケージを提案しましたDataTables。 –
価格フィールドのタイプはそうコンマの後に2つの数値の10進に変更した文字列です。 mysqlのコンソールで
ラン:
ALTER TABLE service_plans MODIFY price DECIMAL(10,2);
!生産上のテーブルに変更を加える場合はALTER TABLE
を呼び出す前に、あなたがテーブルのコピーをしたことを確認してください。
CREATE TABLE service_plans_bak AS SELECT * FROM service_plans;
彼はdatabtables jQueryプラグインを使用しています。与えられたオブジェクトに関係なく、自動的にデータをソートします(データテーブルの最初の列に基づいて)。 –
問題は価格フィールドのデータ型にありません。 jQuery DataTablesは、デフォルトで最初の列でテーブルをソートします。詳細は、[answer by Mike Barwick](http://stackoverflow.com/a/38403431/3549014)を参照してください。 –
@ Gyrocode.comタイトルで見る: "orderBy in Laravel"著者はソートに問題があると言って、作者はjQuery-Datatables(tag:datatablesしかない)を定義していないと言っていましたが、顧客が「私は1ページに200レコードは必要ありません」と言うと、サーバサイドはすでにソートされたページングされたデータを返さなければならないという考えに戻ります。 – num8er
データベースの 'price'列のデータ型がどのようなものですか?また、DataTableを表示用に使用するのは偶然ではありませんか? –
あなたの問い合わせの直後に 'dd($ service_plans)'を使い、出力を見てください。それがソートされていれば(それが私が期待している)、あなたはララベルが正しく行動していることを知っています。 – user3158900
注文は動作しています....しかし、あなたのデータはintの代わりに文字列として取られているようです。 – Hackerman