راکت
حل شده

خطای Invalid JSON response در لاراول Datatable

3 پاسخ

دوستان سلام!
در لاراول 8 از پکیج yajra/datatable استفاده کردم و به ارور خوردم.

ارور جیسان

Controller

public function index()
{
    return view('admin.article.index');
}

public function datatable()
{
    $data = Article::all();
    return Datatables::of($data)
        ->addIndexColumn()
        ->addColumn('action', function ($row) {
            $actionBtn = '<a href="javascript:void(0)" class="edit btn btn-success btn-sm">Edit</a> <a href="javascript:void(0)" class="delete btn btn-danger btn-sm">Delete</a>';
            return $actionBtn;
        })
        ->rawColumns(['action'])
        ->make(true);
}

Router

Route::resource('articles', 'Back\ArticleController');
Route::get('articles/datatable', 'Back\ArticleController@datatable')->name('article.datatable');

Javascript

    $(function() {
        $('#articles_table').DataTable({
            processing: true,
            serverSide: true,
            ajax: '{{route('article.datatable')}}',
            columns: [
                {data: 'DT_RowIndex', name: 'DT_RowIndex'},
                {data: 'thumbnail', name: 'thumbnail', orderable: false, searchable: false},
                {data: 'title', name: 'title'},
                {data: 'short_description', name: 'short_description'},
                {data: 'keywords', name: 'keywords'},
                {data: 'view', name: 'view'},
                {data: 'updated_at', name: 'updated_at'},
                {data: 'action', name: 'action', orderable: false, searchable: false},
            ]
        });
    });

Blade

<!--begin: Datatable-->
<table class="table table-separate table-head-custom" id="articles_table">
    <thead>
        <tr>
            <th>#</th>
            <th>تصویر</th>
            <th>موضوع</th>
            <th>خلاصه مطلب</th>
            <th>کلمات کلیدی</th>
            <th>بازدید</th>
            <th>تاریخ انتشار</th>
            <th>تنظیمات</th>
        </tr>
    </thead>
<tbody></tbody>
</table>
<!--end: Datatable-->

ممنونم از دوستانی که راهنمایی میکنن 🙏

ثبت پرسش جدید

پاسخ‌ها

3
مرتضی رحمانی
مرتضی رحمانی
@mortezarahmani

تخصص: توسعه دهنده وب

بهترین پاسخ

مشکل حل شد.

راه حل :
وقتی داخل routes از resource استفاده میشه دیگه امکان نداره روت دیگه ای تعریف کرد که url اون اسم روت resource رو داشته باشه
پس باید لاین زیر رو :

Route::get('articles/datatable', 'Back\ArticleController@datatable')->name('article.datatable');

به این شکل تغییر داد :

Route::get('article/datatable', 'Back\ArticleController@datatable')->name('article.datatable');
مجید
مجید
@MajidDeveloper

تخصص: Laravel-Nuxt

@mortezarahmani
این دوتا route ی که نوشتی یکی هستند!

مرتضی رحمانی
مرتضی رحمانی
@mortezarahmani

تخصص: توسعه دهنده وب

@MajidDeveloper
یکی نیستند لاین اول articles هست اما لاین دوم article.
درواقع مهم اینه که articles نباشه چون با روت قبلیش که از resource استفاده کردم هم نام نشه!

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام