Laravel-datatables: Argumento no válido proporcionado para foreach () en Datatables.php (línea 57)

Creado en 17 abr. 2018  ·  9Comentarios  ·  Fuente: yajra/laravel-datatables

Resumen del problema o solicitud de función

obteniendo un error al llamar a anyData Route. a través del inspector de red, borré el caché artesanal de php.

ErrorException Argumento no válido proporcionado para foreach ()

en Datatables.php (línea 57)

Fragmento de código del problema

Rutas:

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

}

Detalles del sistema

  • Sistema operativo MAC OS 10.11
  • Versión de PHP 7.2
  • Laravel Versión 5.4
  • Laravel-Datatables Versión 7.3
need feedback question

Comentario más útil

simplemente borra la caché de configuración de laravel.
php artisan config: caché

Todos 9 comentarios

Tu código se ve bien. Sin embargo, ¿parece que su versión no está actualizada? Datatables.php es para v6.0 debajo de afaik? Compruebe que tiene la versión correcta.

Estoy enfrentando el mismo problema.

Acabo de actualizar a la versión 8, con:
composer require yajra/laravel-datatables-oracle:8.*
php artisan vendor:publish --tag=datatables --force

pero sigo recibiendo el error:

ErrorException en DataTables.php línea 51:
Invalid argument supplied for foreach()

por favor avise

@ painter10 basado en la línea de registro de errores 51, es posible que la nueva configuración datatables.php no se sobrescriba. Tal vez intente eliminar la configuración manualmente y luego vuelva a publicar.

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

También vea https://yajrabox.com/docs/laravel-datatables/master/upgrade si aún no lo ha marcado.

Gracias por la sugerencia. Creo que el problema fue que seguí literalmente el tutorial de inicio rápido, por lo que fue necesario modificar la configuración, a saber:
Tuve que eliminar el archivo config.php en Bootstrap / cache, luego en config / app.php cambié
de:
Yajra \ Datatables \ DataTablesServiceProvider :: clase,
a:
Yajra \ DataTables \ DataTablesServiceProvider :: clase,
y ahora anyData () parece funcionar.
Sin embargo, sigo luchando por mostrar registros en la tabla de datos. Solo los encabezados son visibles.

simplemente borra la caché de configuración de laravel.
php artisan config: caché

@AmirKaftari Podría resolver el problema borrando el caché de laravel. ¡Gracias!

@AmirKaftari Todos los elogios son para Allah, el problema que terminé con "php artisan config: cache"
Gracias a todos ustedes..

@AmirKaftari Masha Allah, muchas gracias

@AmirKaftari gracias

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

shadoWalker89 picture shadoWalker89  ·  3Comentarios

techguydev picture techguydev  ·  3Comentarios

Mopster picture Mopster  ·  3Comentarios

macnux picture macnux  ·  3Comentarios

kamrava picture kamrava  ·  3Comentarios