Hubungan dalam jadual data kosong
P粉704196697
P粉704196697 2024-03-28 23:34:59
0
2
264

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();
        });
    }

P粉704196697
P粉704196697

membalas semua(2)
P粉419164700

Ralat ini bermakna apabila Jadual Data cuba mendapatkan semula data dari dalam kaedah $data 获取数据时,没有集合或数组将其定位在 get()

{ collection[0]{
0 => 'Models/Employees'[0],
1 => 'Models/Employees'[1]
}

Jadi apabila anda melihat $raw pulangan di atas tidak mempunyai kedudukan atau sifat

Mulai dari itu kami akan menukar pengawal menjadi seperti ini

public function index(Request $request)
    {
        if ($request->ajax()) {
            $data = Employee::query()->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 .= '   ';
                    return $button;
                })
                ->make(true);
        }

        return view('admin.employees.index');

    }

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);

P粉156415696

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!