Laravel-datatables: Argument non valide fourni pour foreach () dans Datatables.php (ligne 57)

Créé le 17 avr. 2018  ·  9Commentaires  ·  Source: yajra/laravel-datatables

Résumé du problème ou de la demande de fonctionnalité

obtenir une erreur lors de l'appel anyData Route. grâce à l'inspecteur de réseau, j'ai effacé le cache d'artisan de php.

ErrorException Argument non valide fourni pour foreach ()

dans Datatables.php (ligne 57)

Extrait de code du problème

Itinéraires:

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);
    }

}

Détails du système

  • Système d'exploitation MAC OS 10.11
  • PHP version 7.2
  • Laravel version 5.4
  • Laravel-Datatables Version 7.3
need feedback question

Commentaire le plus utile

effacez simplement le cache de configuration de laravel.
config artisan de php

Tous les 9 commentaires

Votre code semble correct. Cependant, il semble que votre version ne soit pas mise à jour? Datatables.php est pour la v6.0 ci-dessous afaik? Veuillez vérifier que vous avez la bonne version?

Im face au même problème.

Je viens de passer à la version 8, avec:
composer require yajra/laravel-datatables-oracle:8.*
php artisan vendor:publish --tag=datatables --force

mais je reçois toujours l'erreur:

ErrorException dans DataTables.php ligne 51:
Argument non valide pour la fonction foreach()

s'il vous plaît donnez votre avis

@ painter10 basé sur la ligne 51 du journal des erreurs, la nouvelle configuration datatables.php peut ne pas être écrasée. Essayez peut-être de supprimer la configuration manuellement, puis de publier à nouveau.

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

Voir également https://yajrabox.com/docs/laravel-datatables/master/upgrade si vous ne l'avez pas encore vérifié.

Merci pour la suggestion. Je pense que le problème était que j'ai suivi le tutoriel de démarrage rapide à la lettre, il était donc nécessaire de modifier la configuration, à savoir:
J'ai dû supprimer le fichier config.php dans Bootstrap / cache, puis dans le config / app.php j'ai changé
de:
Yajra \ Datatables \ DataTablesServiceProvider :: class,
à:
Yajra \ DataTables \ DataTablesServiceProvider :: class,
et maintenant anyData () semble fonctionner.
Cependant, j'ai toujours du mal à afficher les enregistrements dans le datatable. Seuls les en-têtes sont visibles.

effacez simplement le cache de configuration de laravel.
config artisan de php

@AmirKaftari Je pourrais résoudre le problème en effaçant le cache laravel. Merci!

@AmirKaftari Tous les éloges sont dus à Allah, le problème j'en ai fini avec "php artisan config: cache"
Merci à vous tous..

@AmirKaftari Masha Allah, merci beaucoup

@AmirKaftari merci

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

jgatringer picture jgatringer  ·  3Commentaires

SGarridoDev picture SGarridoDev  ·  3Commentaires

shadoWalker89 picture shadoWalker89  ·  3Commentaires

jackrsantana picture jackrsantana  ·  3Commentaires

kamrava picture kamrava  ·  3Commentaires