Laravel-datatables: تم توفير وسيطة غير صالحة لـ foreach () في Datatables.php (السطر 57)

تم إنشاؤها على ١٧ أبريل ٢٠١٨  ·  9تعليقات  ·  مصدر: yajra/laravel-datatables

ملخص المشكلة أو طلب الميزة

الحصول على خطأ عند استدعاء anyData Route. من خلال مفتش الشبكة ، قمت بمسح ذاكرة التخزين المؤقت الحرفية php.

ErrorException وسيطة غير صالحة تم توفيرها لـ foreach ()

في Datatables.php (السطر 57)

مقتطف رمز المشكلة

الطرق:

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

}

تفاصيل النظام

  • نظام التشغيل MAC OS 10.11
  • PHP الإصدار 7.2
  • إصدار Laravel 5.4.1
  • Laravel-Datatables الإصدار 7.3
need feedback question

التعليق الأكثر فائدة

مجرد مسح ذاكرة التخزين المؤقت التكوين من Laravel.
التكوين الحرفي php

ال 9 كومينتر

التعليمات البرمجية الخاصة بك تبدو جيدة. ومع ذلك ، يبدو أن إصدارك قد لا يتم تحديثه؟ Datatables.php للإصدار v6.0 أقل من afaik؟ يرجى التحقق مرة أخرى من أن لديك الإصدار الصحيح؟

أواجه نفس المشكلة.

لقد قمت للتو بالترقية إلى الإصدار 8 ، مع:
composer require yajra/laravel-datatables-oracle:8.*
php artisan vendor:publish --tag=datatables --force

لكن ما زلت أتلقى الخطأ:

ErrorException في DataTables.php السطر 51:
حجة غير صالحة للتزود foreach()

يرجى تقديم النصيحة

@ paintter10 على أساس سطر سجل الخطأ 51 ، قد لا يتم الكتابة فوق التكوين الجديد datatables.php . ربما تحاول حذف التكوين يدويًا ثم النشر مرة أخرى.

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

راجع أيضًا https://yajrabox.com/docs/laravel-datatables/master/upgrade إذا لم تكن قد قمت بفحصه بعد.

شكرا على الاقتراح. أعتقد أن المشكلة تكمن في أنني اتبعت برنامج Quick Start التعليمي حرفيًا ، لذلك كان من الضروري تعديل الإعداد ، أي:
اضطررت إلى حذف ملف config.php في Bootstrap / cache ، ثم قمت بتغييره في ملف config / app.php
من عند:
Yajra \ Datatables \ DataTablesServiceProvider :: class،
إلى:
Yajra \ DataTables \ DataTablesServiceProvider :: class،
والآن يبدو أن anyData () تعمل.
ومع ذلك ، ما زلت أكافح لعرض السجلات في جدول البيانات. الرؤوس فقط مرئية.

مجرد مسح ذاكرة التخزين المؤقت التكوين من Laravel.
التكوين الحرفي php

AmirKaftari يمكنني حل المشكلة عن طريق مسح ذاكرة التخزين المؤقت Laravel. شكرا جزيلا!

AmirKaftari الحمد لله ، المشكلة انتهيت من "php الحرفي config: cache"
شكرا لكم جميعا..

AmirKaftari ما شاء الله شكرا جزيلا لك

AmirKaftari شكرا

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات