yajra / laravel-datatables-editor

Laravel DataTables Editor Integration.
https://yajrabox.com/docs/laravel-datatables/editor-installation
MIT License
115 stars 14 forks source link

Adding data to TR #48

Closed robertnicjoo closed 5 months ago

robertnicjoo commented 4 years ago

Summary of problem or feature request

When I use this code

return datatables()->of( School::withTrashed())
            ->escapeColumns(['action'])
            ->setRowId([
                'data-id' => function($school) {
                    return $school->id;
                },
            ])

I am getting this errors:

01

02

Code snippet of problem

Full Code

return datatables()->of( School::withTrashed())
            ->escapeColumns(['action'])
            ->setRowId([
                'data-id' => function($school) {
                    return $school->id;
                },
            ])
            ->addColumn( 'photo', function ( $school ) {
                return [
                    '<a target="_blank" href="' . url('images') . '/' . $school->profile->photo . '"><img src="' . url('images') . '/' . $school->profile->photo . '" alt="' . $school->name . '" width="50" height="50" /></a>'
                ];
            })
            ->addColumn( 'school_code', function ( $school ) {
                return [
                    '<div class="input-group">
                        <input type="text" id="school_code-'.$school->id.'" class="form-control" value="'.$school->school_code.'" readonly="readonly">
                        <span class="input-group-btn">
                            <button class="btn clipboardBtn btn-primary" type="button" data-clipboard-target="#school_code-'.$school->id.'"><i class="fa fa-clipboard text-white"></i></button>
                        </span>
                    </div>'
                ];
            })
            ->addColumn( 'name', function ( $school ) {
                return [
                    '<a href="#" data-type="text" data-title="Change School Name" data-name="name" data-url="'. route('schoolAjaxUpdate').'" data-pk="'.$school->id.'" class="schoolName">'.$school->name.'</a>'
                ];
            })
            ->addColumn( 'type', function ( $school ) {
                return [
                    '<a href="#" data-type="select2" data-title="Select School Type" data-name="type" data-url="'. route('schoolAjaxUpdate').'" data-pk="'.$school->id.'" class="schoolType">'.$school->type.'</a>'
                ];
            })
            ->addColumn( 'action', function ( $school ) {

                if(!empty($school->deleted_at)) {
                    $mm = '<form style="display: inline;" action="'. route('schoolRestore', $school->id) .'" method="POST">
                            <input type="hidden" name="_method" value="POST">
                            <input type="hidden" name="_token" value="'. csrf_token() .'">
                            <button type="submit" class="btn btn-xs btn-warning">
                            <i class="fa text-white fa-recycle"></i> Restore</button>
                            </form>';
                } else {
                    $mm = '<form style="display: inline;" action="'. route('schools.destroy', $school->id) .'" method="POST">
                            <input type="hidden" name="_method" value="DELETE">
                            <input type="hidden" name="_token" value="'. csrf_token() .'">
                            <button type="submit" class="btn btn-xs btn-danger">
                            <i class="fa text-white fa-trash"></i> Remove</button>
                            </form>';
                }
                return [
                    '<a href="' . route( 'schools.show', $school->id ) . '" class="btn btn-xs btn-info"><i class="fa text-white fa-eye"></i> Show</a>',
                    '<a href="' . route( 'schools.edit', $school->id ) . '" class="btn btn-xs btn-primary"><i class="fa text-white fa-pencil"></i> Edit</a>',
                    $mm
                ];
            })
            ->toJson();

System details

any idea?

yajra commented 5 months ago

I think what you need is setRowData, thanks!