سلام
من از 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()
اگر تو همچین شرایطی بودید تو dataTables از minifiedAjax() استفاده نکنید و از postAjax یا ajax استفاده کنید.
اگر تو همچین شرایطی بودید تو dataTables از minifiedAjax() استفاده نکنید و از postAjax یا ajax استفاده کنید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟