Как показать изображение в столбце данных Ягры, 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'/>";
            }
            }
Другие вопросы по тегам