Laravel-DataTablesのDataTableサービスでViewからControllerにパラメータを渡す方法

この記事は公開から4年以上経過しています。

Laravel開発でYajraBoxのLaravel-DataTablesのDataTableサービスを使う場合には基本的にDataTablesコードをBladeへ直接書かずにDataTableサービス内でHtmlBuilderを利用することになると思いますが、その際にView(Blade)からControllerにajaxリクエストパラメータを渡す方法についての備忘録です。

方法と言ってもLaravel-DataTables公式にそっくり記載されています。

  1. DataTablesサービスのhtml()メソッド内のAjax()/minifiedAjax()呼び出し時に第三引数dataに連想配列としてパラメータを渡す。
  2. 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の公式サイト

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする