是时候结束这个项目并继续使用 Laravel 中更高级的功能了。在我们这样做之前,我们需要向我们的汽车管理项目添加一些额外的功能,比如删除照片。这是一个有趣的小项目,在我看来比传统的待办事项列表要好一些。
在显示页面上显示所有图像
我们的展示页面有问题。我相信你已经明白了。当我们只是将 URL 添加到其他站点时,显示图像很容易。
@foreach( $car->images as $image )
<div class="w-80 bg-white p-3">
<img class="h-52 w-full object-cover" src="{{ $image->url }}" alt="{{ $image->alt }}" />
</div>
@endforeach
现在的问题是我们正在托管我们自己的图像并且需要更改src
内容。我将快速编辑其中一个页面并上传 6 张图片。我将从https://www.pexels.com/获取图像。
转到我们show
对这辆特定车辆的看法会显示大量损坏的图像链接。
主图像有效,因为我们以正确的方式编写它,但底部图像已损坏。我们只需要使用我们的asset()
助手来修复它们。
@foreach( $car->images as $image )
<div class="w-80 bg-white p-3">
<img class="h-52 w-full object-cover" src="{{ asset( 'storage/' . $image->url ) }}" alt="{{ $image->alt }}" />
</div>
@endforeach
刷新页面会产生我们想要看到的结果。
删除图像
我们还不打算介绍删除单个图像;我们稍后会解决这个问题。现在,我们想从我们的表和存储中删除图像。
这一切都将在我们的方法中完成PersonalCarController::destroy
。
public function destroy($id)
{
PersonalCar::destroy($id);
return redirect()->to('/personalcars/')->with('status', 'Your car has been deleted.');
}
在我们销毁资源之前,我们需要删除分配和图像。
public function destroy($id)
{
$car = PersonalCar::find($id);
$car->images()->delete();
$car->images()->detach();
$car->destroy($id);
return redirect()->to('/personalcars/')->with('status', 'Your car has been deleted.');
}
这段代码从表中删除图像images
并从我们的数据透视表中删除关系image_personal_car
。它最终从我们的表中删除了记录personal_cars
。
尽管如此,我们仍然留下了现有的形象。我们需要从存储中删除图像。我们可以使用Storage
外观从磁盘中删除图像public
。
<?php
namespace App\Http\Controllers;
// ...
use App\Models\PersonalCar;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class PersonalCarController extends Controller
{
// ...
/**
* Remove the specified resource from storage.
*
* @param int $id
*/
public function destroy($id)
{
$car = PersonalCar::find($id);
foreach($car->images as $image) {
Storage::disk('public')->delete( $image->url );
}
$car->images()->delete();
$car->images()->detach();
$car->destroy($id);
return redirect()->to('/personalcars/')->with('status', 'Your car has been deleted.');
}
}
就是这样。我们终于完成了汽车管理项目。是时候继续做更大更好的事情了。
标签:Laravel,car,image,我们,images,图像,P47,id,CMP From: https://blog.51cto.com/u_1213352/6052177