Yajra Datatable:table.ajax.json().input服务器端无法获取求助
Yajra Datatable 服务器端无
input属性的解决思路 先确认服务器端响应结构
在Laravel的Datatable控制器中,临时打印完整响应内容,比如用Log::info($datatable->make(true)->getContent()),对比本地和服务器端的JSON结构,看input字段是否存在。Yajra默认可能不会在生产环境返回input,或者配置差异导致该字段被过滤。前端添加容错逻辑
不要直接访问table.ajax.json().input,先做存在性判断避免抛出错误:const ajaxResponse = table.ajax.json(); const inputData = ajaxResponse && ajaxResponse.input ? ajaxResponse.input : {}; // 基于inputData进行后续操作也可以用ES6可选链简化:
const inputData = table.ajax.json()?.input || {};服务器端主动注入
input字段
如果需要服务器端返回请求参数,在Datatable的处理逻辑中手动添加:return $this->datatables ->eloquent($yourQuery) // 其他列处理逻辑... ->addExtra('input', request()->all()) // 将请求参数加入响应 ->make(true);检查版本与配置一致性
对比本地和服务器端的Yajra Datatable版本(执行composer show yajra/laravel-datatables-oracle),确保版本一致。同时检查config/datatables.php配置文件,看是否有与input返回相关的开关,比如return_input之类的配置项。
内容的提问来源于stack exchange,提问作者Vpa
相关产品推荐
相关产品推荐

