Laravel-datatables: datatables警告ajaxエラー404が見つかりません

作成日 2016年08月28日  ·  10コメント  ·  ソース: yajra/laravel-datatables

問題または機能のリクエストの概要

私はlaravelに不慣れです。 jqueryプラグインを使用してdatatableを実行できました。
サーバー側の処理をお願いします。 先日、エラー404が発生しました。 今日私は遭遇しました
500内部サーバーエラー。 未定義のメソッドYajra \ Datatables \ Datatablesの呼び出し:

  • 未定義のメソッドYajra \ Datatables \ Datatables :: eloquent()の呼び出しが存在します。 昨日は404ファイルが見つかりませんでした。 サーバー側の処理を実行できるように、エラーの修正を手伝ってください。 何が原因なのかわかりません。 インデックスで並べ替えと検索を使用している可能性がありますか?
  • また、左結合に関するデモを確認しようとしましたが、デモを取得できませんでした。
    アクセッションにはカテゴリがあるため、参加する必要があります。 ** _結合からのデータをどのように出力しますか
    列に? サーバー側の処理で使用される結合の簡単な例を提供できますか?
  • 列に表示ボタンと編集ボタンも必要な場合は、どのように配置しますか?

これを見ていただきありがとうございます。

問題のコードスニペット

image
こちらがルートです。
image
index.blade.php
image
サービスプロバイダー
image
エイリアス
image

その後、アクセッション

パブリック関数インデックス(リクエスト$リクエスト){

    $categories = Category::all();

    $query = Accession::select('*');

    //this is for links that will run query according to
    //category type

    if ($request->input('type')){

        switch ($request->input('type')){

            case 'Photo':

                $query->where('category_id', 2);

                break;

            case 'Field Notes':

                $query->where('category_id', 3);

                break;

            case 'Audio Recording':

                $query->where('category_id', 4);

                break;

            case 'Instrument':

                $query->where('category_id', 5);

                break;

            case 'Music Scores':

                $query->where('category_id', 6);

                break;

            case 'Video':


                $query->where('category_id', 7);

                break;

            case 'Vertical Files':

                $query->where('category_id', 8);

                break;

            default:

                $query->orderBy('id', 'asc')->get();
        }

        $accessions = $query->orderBy('id')->get();
        return view('accessions.index', compact('accessions', 'categories'));


    }

    //this is for search bar

    $search = $request->input('search'); //<-- we use global request to get the param of URI

    if($search){

        $accessions = Accession::where('groupcountry','LIKE','%'.$search.'%')
                    ->orWhere('description', 'LIKE', '%'.$search.'%')
                    ->orWhere('author', 'LIKE', '%'.$search.'%')
                    ->orWhere('accession_no','LIKE','%'.$search.'%')
                    ->orWhere('year','LIKE','%'.$search.'%')
                    ->paginate(10);

        return view('accessions.index', compact('accessions', 'categories'));
    }
    else{


        $accessions = Accession::orderBy('id', 'asc')->get();
        return view('accessions.index', compact('accessions', 'categories'));
    }


}

システムの詳細

  • オペレーティングシステムWindows10
  • PHPバージョンPHP5.6.20
  • LaravelバージョンLaravelFrameworkバージョン5.2.45
  • Laravel-Datatablesバージョン6.0
question

最も参考になるコメント

404 Not Foundは、 php artisan serveを使用する際の環境問題が原因で、dataTablesが断続的に発生する問題です。 この問題を回避するには、valet、homestead、またはwamp / xamppを使用してください。

全てのコメント10件

Yajra \ Datatables \ Facades \ Datatablesを使用するように名前空間を変更しました。
現在、テーブルにはエラーが表示されています。

image

エラーはエラー200です

エラーをよりよく理解するために、ajax応答を調べてみてください。 また、列とjsがテーブル構造と一致することを再確認する必要がある場合もあります。 これはおそらくjsの問題です。

ご回答ありがとうございます。 はい、ajaxの応答を確認しました。 JSONリントはよさそうだ。 エラー200は消えました。 列とjsを確認し、テーブル構造と照合しました。 これまでのところエラーは

image
再確認します

image

image

image

404 Not Foundは、 php artisan serveを使用する際の環境問題が原因で、dataTablesが断続的に発生する問題です。 この問題を回避するには、valet、homestead、またはwamp / xamppを使用してください。

@yajra 。 はい。 私は現在xamppを使用しています。 検索は続行されます

ルート定義が見直されました。 断続的な404ですが、ajaxはデータを返します。 私は環境問題に同意しなければならないと思います。

アプリをherokuにライブでデプロイしました。 404はなくなりました。 したがって、これは確認された環境問題です。 これを閉じます。 @yajraエラーを

上記のソリューションは、プロジェクトをXAMPPのHTDOCSまたはWAMPPのwwwに転送するか、ライブで実行するだけで機能します。

@ marker17は次のようにjavascriptweb.phpを作成するだけです

 $(document).ready(function () {
    var table = $('#example').DataTable({
        dom: 'lBrtip',
        processing: true,
        serverSide: true,
        ajax: {
            'url':'{!!url("ajax/chapter/list")!!}',
            'type': 'POST',
            'headers': {
            'X-CSRF-TOKEN': '{{ csrf_token() }}'
            }
            },

        orderCellsTop: true,
        fixedHeader: true,

        "columns": [{
                data: 'DT_RowIndex',
                orderable: false,
                searchable: true
            },

            {data: 'stream_id'},
            {data: 'course_id'},
            {data:  'subject_id'},
            {data:  'chapter_name'},
            {data: 'status'},
            {data: 'edit_delete',orderable: false},
        ],
    });

});

そしてweb.phpで

ルート::任意( 'ajax / chapter / list'、 'YourController @Method ');

このコードは私のために働いた。

@ marker17は次のようにjavascriptweb.phpを作成するだけです

 $(document).ready(function () {
    var table = $('#example').DataTable({
        dom: 'lBrtip',
        processing: true,
        serverSide: true,
        ajax: {
            'url':'{!!url("ajax/chapter/list")!!}',
            'type': 'POST',
            'headers': {
            'X-CSRF-TOKEN': '{{ csrf_token() }}'
            }
            },

        orderCellsTop: true,
        fixedHeader: true,

        "columns": [{
                data: 'DT_RowIndex',
                orderable: false,
                searchable: true
            },

            {data: 'stream_id'},
            {data: 'course_id'},
            {data:  'subject_id'},
            {data:  'chapter_name'},
            {data: 'status'},
            {data: 'edit_delete',orderable: false},
        ],
    });

});

そしてweb.phpで

ルート::任意( 'ajax / chapter / list'、 'YourController @Method ');

このコードは私のために働いた。

私の日を救う

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

vipin733 picture vipin733  ·  3コメント

hohuuhau picture hohuuhau  ·  3コメント

kamrava picture kamrava  ·  3コメント

ghost picture ghost  ·  3コメント

techguydev picture techguydev  ·  3コメント