如何在laravel yajra数据表中显示图像?

时间:2020-11-11 15:04:34

标签: laravel datatable

我遇到此错误GEThttp:// localhost:8000 / report / [object%20Object]

我想在报告表中显示用户图像。

我的控制器代码:

public function index(Request $request)
    {
       if ($request->ajax()) {
            $data = Report::with('user','presidents', 'years', 'quarters', 'points')->select('reports.*');

        return Datatables::of($data)
            // ->addIndexColumn()
            ->addColumn('created_at', function ($data) {
                  return jdate($data->created_at)->format('Y-m-d');
            })
          ->addColumn('image', function ($report) { 
                    $url=asset("$report->user->image['thumb']"); 
                    return '<img src='.$url.' border="0" width="40" class="img-rounded" align="center" />'; 
            })
            ->addColumn('action', 'action', 'image')
             ->make(true);
        }

        return view('reports.index');
    }

js代码:

 { data: 'user.image', name: 'user.image',
       render: function( data, type, full, meta ) {
           return "<img src=\"/report/" + data + "\" height=\"50\"/>";
     }
 },

1 个答案:

答案 0 :(得分:0)

我更改了控制器和js代码:这是可行的

  public function index(Request $request)
    {
       if ($request->ajax()) {
            $data = Report::with('user','presidents', 'years', 'quarters', 'points')->select('reports.*');

        return Datatables::of($data)
            // ->addIndexColumn()
            ->addColumn('created_at', function ($data) {
                  return jdate($data->created_at)->format('Y-m-d');
            })
          ->addColumn('user.image', function ($data) {
            return ' '.$data->user->image['thumb'].' ';
           })
            ->addColumn('action', 'action')
             ->make(true);
        }

        return view('reports.index');
    }

js代码:

{ data: 'user.image', name: 'user.image',
                    render: function( data, type, full, meta ) {
                        return "<img src=\"" + data + "\" height=\"50\"/>";
                    }
              },