この記事は公開から4年以上経過しています。
Laravel開発でYajraBoxのLaravel-DataTablesのDataTableサービスを使う場合には基本的にDataTablesコードをBladeへ直接書かずにDataTableサービス内でHtmlBuilderを利用することになると思いますが、その際にView(Blade)からControllerにajaxリクエストパラメータを渡す方法についての備忘録です。
方法と言ってもLaravel-DataTables公式にそっくり記載されています。
- DataTablesサービスの
html()
メソッド内のAjax()
/minifiedAjax()
呼び出し時に第三引数data
に連想配列としてパラメータを渡す。 - Controller側は通常どおり
$request->hoo
のようにメソッドインジェクションされたRequest
からリクエストパラメータを取得する。
これだけです。
サンプルソースコード
// MyDataTable.php
use Yajra\DataTables\Services\DataTable;
class MyDataTable extends DataTable
{
public function html()
{
return $this->builder()
->columns($this->getColumns())
->minifiedAjax('', null, ['hoo' => 'bar']) // ここでパラメータを渡す
->addAction(['width' => '80px'])
->parameters($this->getBuilderParameters());
}
}
参考サイトなど
- YajraBox
Laravel-DataTablesの公式サイト
以上です。