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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在yajra datatable列中显示图像,laravel5.3相关的知识,希望对你有一定的参考价值。

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

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

答案

如果您使用datatable 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);
另一答案

你没有在{{属性中关闭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" />'; 
});
另一答案

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

希望这可以帮助

另一答案

我有几乎相同的问题...它在我的UserController中使用以下代码解决了。

在我的示例中,我没有将图像保存在数据库中,只保存要使用存储在我的项目中的图像名称访问的图像的名称...

很好..它的工作原理

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

以上是关于如何在yajra datatable列中显示图像,laravel5.3的主要内容,如果未能解决你的问题,请参考以下文章

Laravel,Yajra Datatable,如果 y 那么如何返回 Yes else No

如何将数据库索引与 Datatables 和 yajra/laravel-datatables 一起使用

如何在 Yajra dataTable 的页脚中设置“总计”以获取每页或至少在末尾的一列或多列的“总计”

编辑列日期格式后不显示过滤日期 - Laravel Yajra Datatable

Laravel - Yajra Datatables 异常消息:试图获取非对象的属性

Laravel Yajra DataTable:如何在对其他列进行排序时阻止索引列(具有行序列号)发生变化