使用 laravel 数据表显示多个图像

问题描述 投票:0回答:2

我想知道如何显示以数组形式存储在数据库中的多个图像:[“img1.jpeg”,“img2.png”]
这是我的控制器。 就我而言,数据表中仅显示一张图像。

if ($request->ajax()) {
     $data = Actualite::latest()->get();
    return Datatables::of($data)
        ->addIndexColumn()
        ->editColumn('created_at', function ($data) {
           return $data->created_at->format('Y-m-d'); // human readable format
         })
        ->addColumn('image', function ($data) { 
           $images = json_decode($data->image);
               if ((is_array($images) || is_object($images))) {
                   $imgs="";
                   foreach ($images as $image ) {
                       $url= asset('storage/actualite/'.$image);
                       $imgs = '<img src="'.$url.'"  width="30" class="img-fluid rounded-circle" alt="" />' ;
                      
                   } 
               }
               return $imgs;
       })
        ->addColumn('action', function ($data) {
          
            $btns ='<div class="btn-group">
                <button type="button" class="btn btn-dark btn-sm">Action</button>
                <button type="button" class="btn btn-dark btn-sm dropdown-toggle dropdown-toggle-split" id="dropdownMenuReference1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-reference="parent">
                    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="dropdown-menu" aria-labelledby="dropdownMenuReference1">
                    <a class="dropdown-item" href="actualités/edit/'.$data->id.'" class="edit">Edit</a>
                    <a class="dropdown-item" onclick="return confirm(`Êtes-vous sûr de supprimer cet enregistrement ?`)" href="actualités/destroy/'.$data->id.'">Delete</a>
                
                </div>
            </div>';
            return $btns;
        })
        ->rawColumns(['image','action'])
        ->make(true);
}
ajax laravel datatables
2个回答
0
投票

我假设您只得到最后一个图像作为输出,因为这不是数组变量 $imgs="";


0
投票

您必须附加图像,例如 $imgs。 。并将变量置于 if 条件之外。

$imgs="";
if ((is_array($images) || is_object($images))) {
               foreach ($images as $image ) {
                   $url= asset('storage/actualite/'.$image);
                   $imgs.= '<img src="'.$url.'"  width="30" class="img-fluid rounded-circle" alt="" />' ;
                  
               } 
           }
  return $imgs;
© www.soinside.com 2019 - 2024. All rights reserved.