4

我在数据表中为这样的图像添加一列:

->addColumn('product_brand_logo', function ($product_brand) {
    return '<img src="{{ URL::to('upload/image')'.$img->image.'" border="0" width="40" class="img-rounded" align="center" />';

它在检查中不起作用

| {{ URL::to('upload/image')imagename.png}}|

使用laravel 5.3yajra 数据表 6.0

4

6 回答 6

8

如果您使用的是数据表7.0

然后你可以使用rawColumns

如果要呈现 html 内容,请使用 rawColumns api

return DataTables::of($artists)->addColumn('image', function ($artist) {
    $url= asset('storage/'.$artist->image);
    return '<img src="'.$url.'" border="0" width="40" class="img-rounded" align="center" />';
})->addColumn('action', function ($artist) {
    return '<a href="/admin/artist/'.$artist->id.'/edit" class="btn btn-xs btn-primary"><i class="glyphicon glyphicon-edit"></i> Edit</a>
    <a href="admin/artist/"'.$artist->id .'" class="btn btn-xs btn-danger"><i class="glyphicon glyphicon-trash"></i> Delete</a>';
})->rawColumns(['image', 'action'])->make(true);
于 2018-10-25T07:06:58.870 回答
3

要在 DataTable 中显示图像,我们需要在列上使用渲染函数来显示图像。您可以定义自己的渲染函数。在我们的例子中,我们想要渲染一个图像,如下所示,

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

整体看起来像这样 -

<script>
    $( function() {
        $( '#users-table' ).DataTable( {
            processing: true,
            serverSide: true,
            ajax: "{!! route('route_name') !!}",
            columns: [
                { data: 'id', name: 'id' },
                { data: 'avatar', name: 'avatar',
                    render: function( data, type, full, meta ) {
                        return "<img src=\"/path/" + data + "\" height=\"50\"/>";
                    }
                },
                { data: 'email', name: 'email' },
            ]
        } );
    } );
</script>

希望这可以帮助

于 2018-01-19T13:48:36.657 回答
2

我遇到了几乎同样的问题......并且在我的UserController.

在我的示例中,我不将图像保存在数据库中,仅使用存储在我的项目中的图像名称来访问图像的名称......

很好。。它的工作原理

->addColumn('image', function ($user) { $url=asset("uploads/image/$user->avatar"); return '<img src='.$url.' border="0" width="40" class="img-rounded" align="center" />'; });

于 2018-10-20T21:53:01.840 回答
2

你没有关闭属性{{src试试这个:

->addColumn('product_brand_logo', function ($product_brand) { 
       $url=asset("uploads/image/$product_brand->image"); 
       return '<img src='.$url.' border="0" width="40" class="img-rounded" align="center" />'; 
});
于 2017-08-11T07:59:15.120 回答
0

您可以通过以下代码执行此操作

          {data: 'logo', name: 'logo',
            render: function( data, type, full, meta ) {
                return "<img src=\"/images/clients/" + data + "\" height=\"150\" 
                alt='No Image'/>";
            }
            }
于 2020-03-28T15:07:58.973 回答
0

使用这将做的伎俩

->escapeColumns('product_brand_logo')

于 2021-08-12T13:01:26.587 回答