提问者:小点点

删除图像后移动的表列(使用带有laravel的Datatables)


我正在尝试使用Laravel7中的数据表与多图像设施。 当我删除一个产品的所有图像时,它也会删除它们。 但当我返回到数据表时,所有列都移到左一列。 我在附加一个图像。 我不确定这里需要提供哪一部分代码。 现在我只是给控制器部分。

控制器

public function destroy_allimages($id)
    {
        $car = Car::find($id);
        if (!is_null($car)) {
            foreach ($car->join_caralbum as $image) {
                unlink($image->image_location);
            }
            $car->join_caralbum()->delete();
        }
        return back()->with('success', 'Car Deleted Successfully');
    }

刀片

@foreach ($cars as $car) 
                <tr>   
                    @php $i=1; @endphp
                 @foreach ($car->join_caralbum as $image)
                    @if ($i>0) 
                 <td><img src="{{asset($image->image_location)}}" style ="height:90px; width:120px;"></td>   
                    @endif
                  @php $i--; @endphp
                   
                 @endforeach
                
                    <td>{{ $car->visible }}</td>
                    <td>{{ $car->carreg }}</td>
                    <td>{{ $car->make }}</td>
                    <td>{{ $car->model }}</td>
                    <td>{{ $car->price }}</td>
                    <td>{{ $car->enginesize }}</td>
                    <td>{{ $car->gearbox }}</td>
                    <td>{{ $car->fueltype }}</td>
                    <td>{{ $car->noofdoors }}</td>
                    <td>{{ $car->status }}</td>
                    <td>{{ $car->cartype }}</td> 
                    <td>
                        <a class="btn btn-info" href="{{ url('car_show/'.$car->id) }}"><i class="fas fa-info fa-xs"></i></a>
                        <a class="btn btn-primary" href="{{ url('car_edit/'.$car->id) }}"><i class="fas fa-edit fa-xs"></i></a>
                        <a class="btn btn-danger" href="{{ url('car_destroy/'.$car->id) }}"
                            onclick="return confirm('Are you sure you want to delete all images for this car?')"
                            ><i class="fas fa-trash fa-xs"></i></a>
                    </td>
                </tr>
                @endforeach
       

js用于数据表

<script type="text/javascript">
    $(document).ready( function () 
    {
    $('#table').DataTable({
        "dom": "fliprtip",
        "pagingType":"full_numbers",
            
        lengthMenu: [[5,10,15,20,-1],[5,10,15,20,"All"]]
                        });
    });
</script>

在此处输入图像说明


共1个答案

匿名用户

发生这种情况是因为这段代码:

@php $i=1; @endphp
@foreach ($car->join_caralbum as $image)
@if ($i>0) 
    <td><img src="{{asset($image->image_location)}}" style ="height:90px width:120px;"></td>   
@endif
@php $i--; @endphp
@endforeach

我不知道为什么要使用$i变量,但是您可以通过以下方式来解决问题:

@php $i=1; @endphp
@foreach ($car->join_caralbum as $image)

<td>

@if ($i>0) 
<img src="{{asset($image->image_location)}}" style ="height:90px; width:120px;">
@endif

</td>   

@php $i--; @endphp
@endforeach