问题描述
使用laravel / Yajra帮助我,我正在尝试使用关系表设置yajra框,但它不起作用。 我已经将yajra完美地设置为官方文档,并且没有来自ajax的错误。我尝试使用没有关系的简单表,但仍然遇到相同的错误。
控制台错误
jquery-3.4.1.js:3850 Uncaught TypeError: Cannot read property 'style' of undefined
at Fa (jquery.dataTables.min.js:62)
at ha (jquery.dataTables.min.js:48)
at e (jquery.dataTables.min.js:93)
at HTMLTableElement.<anonymous> (jquery.dataTables.min.js:93)
at Function.each (jquery-3.4.1.js:367)
at jQuery.fn.init.each (jquery-3.4.1.js:202)
at jQuery.fn.init.n [as dataTable] (jquery.dataTables.min.js:83)
at jQuery.fn.init.h.fn.DataTable (jquery.dataTables.min.js:165)
at HTMLDocument.<anonymous> (2010101:791)
at mightThrow (jquery-3.4.1.js:3557)
我的付款表
$table->bigIncrements('id');
$table->unsignedBigInteger('patients_id');
$table->string('description')->nullable();
$table->foreign('patients_id')->references('id')->on('patients')->onDelete('cascade');
$table->unsignedBigInteger('test_id');
$table->foreign('test_id')->references('id')->on('tests');
$table->timestamps();
路线:
Route::get('payments',[ 'uses' => 'PaymentController@getPaymentData','as' => 'payment'])->middleware('auth');
付款方式:
public function patient() {
return $this->belongsTo('App\Patients',"patients_id");
}
public function tests() {
return $this->belongsTo('App\Test',"test_id");
}
付款控制器
public function getPaymentData(Request $request){
if ($request->ajax()) {
$model = payment::with('tests');
return DataTables::eloquent($model)
->addColumn('tests.name',function (payment $payment) {
return $payment->tests->name;
})
->toJson();
}
return view('payment.create_payment');
}
查看:
$(function () {
var table = $('.yajra-datatable').DataTable({
processing: true,serverSide: true,ajax: "{{ route('payment') }}",columns: [
{data: 'id',name: 'id'},{data: 'name',name: 'tests.name'},{data: 'price',name: 'tests.price'},{data: 'description',name: 'description'},{data: 'created_at',name: 'created_at'},{
data: 'action',name: 'action',orderable: true,searchable: true
},]
});
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)