如何在yajra datatable列中显示图像,laravel5.3

时间:2017-08-11 07:40:22

标签: laravel-5 yajra-datatable

我在数据表中为图像添加一个列,如下所示:

->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.3 yajra datatable 6.0

5 个答案:

答案 0 :(得分:2)

如果您使用的是数据表7.0

然后,您可以使用 rawColumns

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

答案 1 :(得分:1)

您未在{{属性中关闭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" />'; 
});

答案 2 :(得分:1)

要在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>

希望这有帮助

答案 3 :(得分:0)

我几乎遇到了同样的问题... UserController中的以下代码解决了该问题。

在我的示例中,我没有将图像保存在数据库中,仅将要访问的图像名称与存储在我的项目中的图像名称一起保存...

很好..有效

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

答案 4 :(得分:0)

您可以通过以下代码来实现

          {data: 'logo', name: 'logo',
            render: function( data, type, full, meta ) {
                return "<img src=\"/images/clients/" + data + "\" height=\"150\" 
                alt='No Image'/>";
            }
            }