Laravel-datatables: Ungültiges Argument für foreach () in Datatables.php (Zeile 57)

Erstellt am 17. Apr. 2018  ·  9Kommentare  ·  Quelle: yajra/laravel-datatables

Zusammenfassung des Problems oder der Funktionsanforderung

Fehler beim Aufrufen einer beliebigen Datenroute. über den netzwerkinspektor habe ich den php artisan cache geleert.

ErrorException Ungültiges Argument für foreach ()

in Datatables.php (Zeile 57)

Code-Snippet des Problems

Routen:

Route::get('/datatable','DatatablesController<strong i="11">@getIndex</strong>');
Route::get('/anyData','DatatablesController<strong i="12">@anyData</strong>')->name('datatables.data');

<?php

namespace App\Http\Controllers;


use Yajra\Datatables\Datatables;
use Illuminate\Support\Facades\DB;

class DatatablesController extends Controller
{
    /**
     * Displays datatables front end view
     *
     * <strong i="13">@return</strong> \Illuminate\View\View
     */
    public function getIndex()
    {
        return view('reports.testdatatable');
    }

    /**
     * Process datatables ajax request.
     *
     * <strong i="14">@return</strong> \Illuminate\Http\JsonResponse
     */
    public function anyData()
    {
       return Datatables::of(User::query())->make(true);
    }

}

Systemdetails

  • Betriebssystem MAC OS 10.11
  • PHP Version 7.2
  • Laravel Version 5.4
  • Laravel-Datatables Version 7.3
need feedback question

Hilfreichster Kommentar

Löschen Sie einfach den Konfigurationscache von Laravel.
PHP Artisan Config: Cache

Alle 9 Kommentare

Ihr Code sieht gut aus. Es scheint jedoch, dass Ihre Version möglicherweise nicht aktualisiert wird? Datatables.php ist für v6.0 unter afaik? Bitte überprüfen Sie noch einmal, ob Sie die richtige Version haben.

Ich stehe vor dem gleichen Problem.

Ich habe gerade ein Upgrade auf Version 8 durchgeführt, mit:
composer require yajra/laravel-datatables-oracle:8.*
php artisan vendor:publish --tag=datatables --force

aber ich bekomme immer noch den Fehler:

ErrorException in DataTables.php Zeile 51:
Ungültiges Argument für foreach ()

Bitte beraten

@ painter10 basierend auf der Fehlerprotokollzeile 51 wird die neue Konfiguration datatables.php möglicherweise nicht überschrieben. Versuchen Sie möglicherweise, die Konfiguration manuell zu löschen und erneut zu veröffentlichen.

$builders = config('datatables.builders');
...
foreach ($builders as $class => $engine) {...

Siehe auch https://yajrabox.com/docs/laravel-datatables/master/upgrade, wenn Sie es noch nicht überprüft haben.

Danke für den Vorschlag. Ich denke, das Problem war, dass ich das Schnellstart-Tutorial buchstäblich befolgt habe, sodass das Setup geändert werden musste, nämlich:
Ich musste die Datei config.php in Bootstrap / Cache löschen und dann in der Datei config / app.php ändern
von:
Yajra \ Datatables \ DataTablesServiceProvider :: class,
zu:
Yajra \ DataTables \ DataTablesServiceProvider :: class,
und jetzt scheint anyData () zu funktionieren.
Ich habe jedoch immer noch Probleme, Datensätze in der Datentabelle anzuzeigen. Es sind nur Überschriften sichtbar.

Löschen Sie einfach den Konfigurationscache von Laravel.
PHP Artisan Config: Cache

@AmirKaftari Ich konnte das Problem beheben,

@AmirKaftari Alles Lob gebührt Allah, dem Problem, dass ich mit "php artisan config: cache" fertig bin.
Danke euch allen..

@AmirKaftari Masha Allah, vielen Dank

@AmirKaftari danke

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen