Saya mendapat ralat ini dalam DataTables: DataTables warning: table id=DataTable_Table_0 - Mesej pengecualian:
Cuba membaca "nama" sifat nol.
Walaupun setiap position_id mempunyai id dari jadual kedudukan, jadi ia tidak sepatutnya kosong. Jika ada yang ingin membantu saya akan berterima kasih. Model saya:
public function position() { return $this->belongsTo(Position::class); }
Pengawal saya:
class EmployeeController extends Controller { public function index(Request $request) { if ($request->ajax()) { $data = Employee::with('position')->select('id','name','email')->get(); return Datatables::of($data)->addIndexColumn() ->addColumn('position', function (Employee $employee) { return $employee->position->name; })->addColumn('action', function($data){ $button = '<button type="button" name="edit" id="'.$data->id.'" class="edit btn btn-primary btn-sm"> <i class="bi bi-pencil-square"></i>Edit</button>'; $button .= ' <button type="button" name="edit" id="'.$data->id.'" class="delete btn btn-danger btn-sm"> <i class="bi bi-backspace-reverse-fill"></i> Delete</button>'; return $button; }) ->make(true); } return view('admin.employees.index'); } }
Skrip:
$(document).ready(function() { var table = $('.user_datatable').DataTable({ processing: true, serverSide: true, ajax: "{{ route('admin.employees.index') }}", columns: [ {data: 'id', name: 'id'}, {data: 'name', name: 'name'}, {data: 'email', name: 'email'}, {data: 'position', name: 'position.name'}, {data: 'action', name: 'action', orderable: false, searchable: false}, ] });
Berhijrah:
public function up() { Schema::create('employees', function (Blueprint $table) { $table->id(); $table->string('name'); $table->foreignId('position_id')->nullable(); $table->string('phone_number'); $table->date('recruitment_date'); $table->string('email')->unique(); $table->string('image_path')->nullable(); $table->string('payment'); $table->timestamps(); $table->string('admin_created_id')->nullable(); $table->string('admin_updated_id')->nullable(); }); }
Ralat ini bermakna apabila Jadual Data cuba mendapatkan semula data dari dalam kaedah
$data
获取数据时,没有集合或数组将其定位在get()
Jadi apabila anda melihat
$raw
pulangan di atas tidak mempunyai kedudukan atau sifatMulai dari itu kami akan menukar pengawal menjadi seperti ini
Jika ia tidak berfungsi, anda boleh cuba menukar pertanyaan pangkalan data Tetapi untuk ini saya perlu membuang $data Anda boleh melihat hasilnya dalam bahagian Rangkaian elemen Periksa dalam penyemak imbas anda
dd($data);
Masalahnya kerana pilihan. Nampaknya jika anda ingin menggunakan perhubungan anda perlu menambah kunci asing pada pilihan (dalam kes saya "position_id"), atau alih keluar sepenuhnya dan hanya gunakan get . Terima kasih kepada semua orang yang membantu dalam komen.