Ankündigung

Einklappen
Keine Ankündigung bisher.

DataTables Fehler

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Laravel] DataTables Fehler

    Hallo,

    ich hangel mich gerade entlang eines Beispiels mit dem DataTables in Laravel.


    Irgendwie bekomme ich keine richtige JSON zurück.

    Controller:
    PHP-Code:
    namespace App\Http\Controllers;

    use 
    App\Http\Requests;
    use 
    App\User;
    use 
    Yajra\Datatables\Datatables;

    class 
    DatatablesController extends Controller
    {
        
    /**
         * Displays datatables front end view
         *
         * @return \Illuminate\View\View
         */
        
    public function getIndex()
        {
            return 
    view('datatables.index');
        }

        
    /**
         * Process datatables ajax request.
         *
         * @return \Illuminate\Http\JsonResponse
         */
        
    public function anyData()
        {

             
    $users User::select(['id''name''email''created_at''updated_at']);
             return 
    Datatables::of($users)->make();

        }

    Index.blade.php
    PHP-Code:
    extends('layouts.master')

    @
    section('content')
        <
    table class="table table-bordered" id="users-table">
            <
    thead>
                <
    tr>
                    <
    th>Id</th>
                    <
    th>Name</th>
                    <
    th>Email</th>
                    <
    th>Created At</th>
                    <
    th>Updated At</th>
                </
    tr>
            </
    thead>
        </
    table>
    @
    stop
    @push('scripts')
    <
    script>

    $(
    '#users-table').DataTable({
            
    processingtrue,
            
    serverSidetrue,
            
    ajax'{!! route('datatables.data') !!}',
            
    columns: [
                {
    data'id'},
                {
    data'name'},
                {
    data'email'},
                {
    data'created_at'},
                {
    data'updated_at'}
            ]
        });
    </script>
    @endpush 
    Er meldet mir:
    PHP-Code:
    DataTables warningtable id=users-table Invalid JSON response. For more information about this errorplease see http://datatables.net/tn/1 

    Ich habe den Fehler gegoogelt, aber ich komme nicht drauf.

    Mit tinker bekomme ich das hier als Response:

    PHP-Code:
    >>> return Datatables::of(User::select(['id''name''email''created_at''updated_at']))->make()
    => 
    Illuminate\Http\JsonResponse {#4067
         
    +headersSymfony\Component\HttpFoundation\ResponseHeaderBag {#4065},
         
    +original: [
           
    "draw" => 0,
           
    "recordsTotal" => 51,
           
    "recordsFiltered" => 51,
           
    "data" => [
             [
               
    "id" => "1",
               
    "name" => "Meier",
               
    "email" => "XXX@XXX.net",
               
    "created_at" => "2020-05-23T20:10:25.000000Z",
               
    "updated_at" => "2020-05-23T20:10:25.000000Z",
             ],
             [
               
    "id" => "2",
               
    "name" => "Jaren Batz",
               
    "email" => "maxime.kulas@example.org",
               
    "created_at" => "2020-05-25T17:27:06.000000Z",
               
    "updated_at" => "2020-05-25T17:27:06.000000Z",
             ],
             [
               
    "id" => "3",
               
    "name" => "Dr. Tyson Gibson",
               
    "email" => "pete.champlin@example.org",
               
    "created_at" => "2020-05-25T17:27:06.000000Z",
               
    "updated_at" => "2020-05-25T17:27:06.000000Z",
             ],
             [
               
    "id" => "4",
               
    "name" => "Prof. Megane Herzog III",
               
    "email" => "garnett68@example.org",
               
    "created_at" => "2020-05-25T17:27:06.000000Z",
               
    "updated_at" => "2020-05-25T17:27:06.000000Z",
             ],

           ],
           
    "queries" => [
             [
               
    "query" => "select count(*) as aggregate from (select '1' as `row_count` from `users`) count_row_table",
               
    "bindings" => [],
               
    "time" => "168.45",
             ],
             [
               
    "query" => "select `id`, `name`, `email`, `created_at`, `updated_at` from `users`",
               
    "bindings" => [],
               
    "time" => "2.18",
             ],
           ],
           
    "input" => [],
         ],
         +
    exceptionnull,
       } 

  • #2
    Zitat von Matze1708 Beitrag anzeigen
    Er meldet mir:
    PHP-Code:
    DataTables warningtable id=users-table Invalid JSON response. For more information about this errorplease see http://datatables.net/tn/1 
    Ich habe den Fehler gegoogelt, aber ich komme nicht drauf.
    Den Link in der Fehlermeldung hast du dir nicht angeschaut? Dort ist erklärt wie du das debuggst. Zusammengefasst; schau dir an was du als Antwort vom Server bekommst.

    Kommentar


    • #3
      schon angeschaut.

      Habe auch in die Netzwerkanalyse geschaut. Nut dort ist nichts brauchbares drin. Nur wie die Seite selbst erstellt wird, nicht der Ajax Call

      Kommentar


      • #4
        Sicher, das du den Filter richtig eingestellt hast?
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Zitat von lstegelitz Beitrag anzeigen
          Sicher, das du den Filter richtig eingestellt hast?
          Nein bin mir nicht sicher. Welchen meinst du?

          Kommentar


          • #6
            Zitat von Matze1708 Beitrag anzeigen
            Nein bin mir nicht sicher. Welchen meinst du?
            Wahrscheinlich meint er den Filter in dem "Netzwerkanalyse"-Tool. Anders formuliert, bist du dir sicher das kein AJAX Request ausgeführt wird? Das prüfen und wenn das wirklich der Fall ist, den Grund dafür suchen. (Z.B. steht im Quellcode der Seite überhaupt die richtige URL, gibt es Fehler auf der Konsole usw.)

            Kommentar


            • #7
              Ich hoffe nicht das der Filter vom Netzwerk Tool gemeint ist.
              der steht auf „All“.

              ich bin mir tatsächlich nicht sicher ob der Request richtig raus geht.
              da ich in Laravel neu bin. Bin ich mir noch nicht ganz sicher wie ich das am besten machen.

              ABER! wenn ich unter Ajax URL was anderes eintippe, meint Laravel das es die Route nicht kennt.
              das ist ja schon mal ein kleiner Schritt.

              mit Tinker, bzw wenn ich die Route auf Get stelle und die url aufrufe, bekomme ich ein JsOn Array raus.


              das ist bestimmt nur was kleines, was ich noch nicht im Blick habe... ich hasse diese Fehler

              Kommentar


              • #8
                Matze1708 Du benutzt "Yajra". Poste mal deine DataTables.php..

                Kommentar


                • #9
                  Ich habe jetzt nochmal alles neugebastelt nach einer anderen Anleitung. Dabei musste ich die Route die AJAX haben mag in die api Route bauen, seit dem geht es.

                  Kommentar

                  Lädt...
                  X