2016-02-28
このLaravelの実装をインストールしたとき、私はチュートリアルを使いました。そのチュートリアルでは、jqueryを使ったデータテーブルを紹介していました。私はこれが大好きです。私が持っているサイトには最適だと思いました。
データテーブルはエディタ機能を除いて無料です。試しに無料の部分をダウンロードして、自分のサイトで試してみました。結果は上々でした。ダウンロードセクションでいくつか問題がありました。ボタンの意味がよくわからなかったのですが、それほど問題なく動作させることができました。今のところ、とても満足しています。
エディターでも試してみることにしました。実際、Datatablesはとても気に入っていたので、この点についてはあまり長く考えませんでした。クレジットカードを手にするまで、15分くらいは考えただろうか。その後、私はダウンロード天国にいた。
ここからは少しペースダウン。ドキュメントがたくさんあって、わかりやすくて簡単そうに見えますが、実際はそうではありませんでした。言われた通りにやってみると...エラー。検索。実行して...エラー。これを何度か繰り返した後、(私はJavaScriptの達人ではありませんが)彼らのソースからコードをコピーして、動作例に貼り付けることにしました。
うまくいきました。まあ、そんな感じです。ルートは設定され、メソッドはjsonを返していました。しかし、エラーが出続けました。Datatablesに決めたのは、Ajaxについて多くのことを学ばなくて済むと思ったからでもある。しかし、それは間違いでした。
私は https://github.com/yajra/laravel-datatables を嗅ぎまわって、何かないか探しました。このパッケージは、私には必要のないサーバーサイドの処理に適応したもののように思えましたし、データテーブル・エディタにこのパッケージを使用する方法についての有益なリンクも見つかりませんでした。自分で調べればわかると思い、サーバーサイドの処理には良さそうだけど、このパッケージは残しておきました。実際のところ、とてもいい感じです。
クロームのデベロッパーズツールでどこにエラーがあるかとか、返されたajaxのレスポンスをどう読むかとか、いろいろなことを学び始めました。今ではすっかり達人の域に達しています。最近、postmanの存在を知ったのですが、これはとても役に立ちました。
うまくいくと思っていたレスポンスがうまくいかなかったとき、私はさらに深く掘り下げました。ClientServer Dataというページを見つけて、最初に探すべきものを教えてもらいました。これで、具体的な作業ができるようになりました。何を出力しなければならないかがわかりました。次に、それを得るための方法を見つけなければなりませんでした。
{
"data": [
{
"DT_RowId": "row_29",
"first_name": "Fiona",
"last_name": "Green",
"seat": "Chief Operating Officer (COO)",
"office": "San Francisco",
"extn": "2947",
"salary": "850000",
"start_date": "2010-03-11"
}]
}
ということで、私が見逃していた部分は、:
{
"data" です。[
とその:
]
}
を最後に追加しています。簡単なものを試してみました。
$var = '{ "data":['.$var.']}';
を試してみましたが、配列から文字列への変換や、オブジェクトから文字列への変換エラーが出てしまいました。最後に、コレクションには ->toJson () を使い、stdClass オブジェクトがある場合には json_encode($var) ; を使いました。
ふーっ! 大変でしたが、楽しくてやりがいがありました。本当にたくさんのことを学んだ気がします。今はまた戻って、socket.ioを使ったノードベースのシステムに挑戦したいと思っています。いつかは。