Laravel-datatables: Argumento inválido fornecido para foreach () em Datatables.php (linha 57)

Criado em 17 abr. 2018  ·  9Comentários  ·  Fonte: yajra/laravel-datatables

Resumo do problema ou solicitação de recurso

obtendo erro ao chamar anyData Route. através do inspetor de rede, limpei o cache do artesão php.

ErrorException Argumento inválido fornecido para foreach ()

em Datatables.php (linha 57)

Fragmento de código do problema

Rotas:

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

}

Detalhes do sistema

  • Sistema operacional MAC OS 10.11
  • PHP versão 7.2
  • Laravel Versão 5.4
  • Laravel-Datatables Versão 7.3
need feedback question

Comentários muito úteis

apenas limpe o cache de configuração do laravel.
php artisan config: cache

Todos 9 comentários

Seu código parece bom. No entanto, parece que sua versão pode não estar atualizada? Datatables.php é para v6.0 abaixo do afaik? Por favor, verifique se você tem a versão correta.

Estou enfrentando o mesmo problema.

Acabei de atualizar para a versão 8, com:
composer require yajra/laravel-datatables-oracle:8.*
php artisan vendor:publish --tag=datatables --force

mas ainda estou recebendo o erro:

ErrorException em DataTables.php linha 51:
Argumento inválido fornecido para foreach ()

Por favor informar

@ painter10 com base na linha 51 do log de erros, a nova configuração datatables.php pode não ser substituída. Tente excluir a configuração manualmente e publique novamente.

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

Veja também https://yajrabox.com/docs/laravel-datatables/master/upgrade se você não tiver verificado ainda.

Obrigado pela sugestão. Acho que o problema foi que segui literalmente o tutorial de Início Rápido, então foi necessário modificar a configuração, a saber:
Eu tive que deletar o arquivo config.php no Bootstrap / cache, então no config / app.php eu mudei
a partir de:
Yajra \ Datatables \ DataTablesServiceProvider :: class,
para:
Yajra \ DataTables \ DataTablesServiceProvider :: class,
e agora anyData () parece funcionar.
No entanto, ainda estou lutando para exibir os registros na tabela de dados. Somente cabeçalhos são visíveis.

apenas limpe o cache de configuração do laravel.
php artisan config: cache

@AmirKaftari Eu poderia resolver o problema limpando o cache do laravel. Obrigado!

@AmirKaftari Todos os elogios são para Alá, o problema que terminei com "php artisan config: cache"
Obrigado a todos vocês..

@AmirKaftari Masha Allah, muito obrigado

@AmirKaftari obrigado

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

SGarridoDev picture SGarridoDev  ·  3Comentários

hohuuhau picture hohuuhau  ·  3Comentários

shadoWalker89 picture shadoWalker89  ·  3Comentários

macnux picture macnux  ·  3Comentários

hari-web picture hari-web  ·  3Comentários