Как показать изображение в столбце данных Ягры, laravel5.3
Я добавляю столбец в 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
8 ответов
Если вы используете 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" />'; });
->addColumn('product_brand_logo', function ($product_brand) {
return '<img src="{{ asset('upload/image/')'.$img->image.'" border="0"
width="40" class="img-rounded" align="center" />';
})->rawColumns(['product_brand_logo', 'action']);
Просто вызовите "->rawColumns(['product_brand_logo', 'action'])" после редактирования/добавления столбца
лучший способ показать тег изображения в таблице данных
->addColumn('logo_url', function($data) {
return '<img src="'.$data->logo_url.'" width="95px"/>';
})
Используйте Это поможет
->escapeColumns('product_brand_logo')
Вы можете сделать это с помощью следующего кода
{data: 'logo', name: 'logo',
render: function( data, type, full, meta ) {
return "<img src=\"/images/clients/" + data + "\" height=\"150\"
alt='No Image'/>";
}
}