افشار محمودیان
3 سال پیش توسط افشار محمودیان مطرح شد
2 پاسخ

مشکل dataTables

سلام

من از InfyOmLabs-laravel-generator استفاده میکنم که به دستوراتش میشه جدول ها رو بدون چیز اضافی آماده کرد. حتی میشه از دیتابیس جدول درست کرد (خیلی خوبه بعدا حتما یه سر بهش بزنید).
این پکیج یک آپشنی داره که با استفاده از اون جدول ها رو طبق پکیج laravel-datatables پیاده سازی میکنه.
کد من تو لوکالم به درستی کار میکنه و هیچ مشکلی نداره اما وقتی پروژه رو روی سرور گذاشتم تمام جدول ها ارور invalid JSON response میگیرن.
response رو چک کردم مه یک html هست نه یک json.

یک نمونه از کد رو میزارم .

این کد تو web.php

Route::resource('admins', 'AdminController');

این کد تو AdminController

class AdminController extends AppBaseController
{
    /** @var  AdminRepository */
    private $adminRepository;

    public function __construct(AdminRepository $adminRepo)
    {
        $this->adminRepository = $adminRepo;
    }

    public function index(AdminDataTable $adminDataTable)
    {
        return $adminDataTable->render('admins.index');
    }
}

فهمیدم که تو کد های این پکیج، این دو شرط رد میشه و همون قالب جدول برگشت داده میشه .

    public function render($view, $data = [], $mergeData = [])
    {
        if ($this->request()->ajax() && $this->request()->wantsJson()) {
            return app()->call([$this, 'ajax']);
        }

        if ($action = $this->request()->get('action') and in_array($action, $this->actions)) {
            if ($action == 'print') {
                return app()->call([$this, 'printPreview']);
            }

            return app()->call([$this, $action]);
        }

        return view($view, $data, $mergeData)->with($this->dataTableVariable, $this->getHtmlBuilder());
    }

چرا این اتفاق میوفته؟؟؟
یعنی چرا شرط زیر false میشه ؟ (کد تو لوکال درسته و شرط هم درسته ، تو سرور به این مشکل خورده)

$this->request()->ajax() && $this->request()->wantsJson()

ثبت پرسش جدید
افشار محمودیان
تخصص : برنامه نویس
@afsharmahmoodian 3 سال پیش مطرح شد
1

اگر تو همچین شرایطی بودید تو dataTables از minifiedAjax() استفاده نکنید و از postAjax یا ajax استفاده کنید.


افشار محمودیان
تخصص : برنامه نویس
@afsharmahmoodian 3 سال پیش مطرح شد
0

اساتید یه کمکی کنید... گیر کردم 😥


افشار محمودیان
تخصص : برنامه نویس
@afsharmahmoodian 3 سال پیش مطرح شد
1

اگر تو همچین شرایطی بودید تو dataTables از minifiedAjax() استفاده نکنید و از postAjax یا ajax استفاده کنید.


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

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