首页 > 其他分享 > Laravel — P47:最后的润色 (CMP)

Laravel — P47:最后的润色 (CMP)

时间:2023-02-12 21:38:32浏览次数:60  
标签:Laravel car image 我们 images 图像 P47 id CMP

是时候结束这个项目并继续使用 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/​​获取图像。

 Laravel — P47:最后的润色 (CMP)_上传

转到我们​​show​​对这辆特定车辆的看法会显示大量损坏的图像链接。

 Laravel — P47:最后的润色 (CMP)_Storage_02

主图像有效,因为我们以正确的方式编写它,但底部图像已损坏。我们只需要使用我们的​​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

刷新页面会产生我们想要看到的结果。

 Laravel — P47:最后的润色 (CMP)_上传_03

删除图像

我们还不打算介绍删除单个图像;我们稍后会解决这个问题。现在,我们想从我们的表和存储中删除图像。

这一切都将在我们的方法中完成​​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

相关文章

  • Laravel — P46:控制器销毁(CMP)
    我们到了最后一个方法:​destroy​​。您猜对了,该​​destroy​​方法将从数据库中删除资源。这是最简单的一堆。我们只需要创建一个链接,删除一个资源并将用户返回到页面​​......
  • Laravel — P54:路由组 — 中间件和控制器
    我想在​​web.php​​​文件中提及的最后一个主题是路由组。考虑到还没有触及​​api.php​​也经常使用的文件,还没有完全讨论完路由。将中间件应用于组要将中间件应用于特......
  • Laravel — P53:速率限制
    对于眼尖的读者,您可能已经注意到我们上一篇文章中调用​​configureRateLimiting​​​的方法。​​RouteServiceProvider​​protectedfunctionconfigureRateLimiting(){......
  • Laravel — P52:显式路由模型绑定
    什么时候需要显式绑定模型与使用Laravel的隐式绑定?我经常发现的一个常见问题没有适当或足够简单的回答。因此,我认为它没有像应有的那样频繁使用。在前面的示例中,我们使用......
  • Laravel — P51:路由模型隐式绑定
    现在我们已经熟悉了依赖注入,我们还能用这个概念做什么呢?我们能否像模型一样将我们的模型“注入”​​User​​​到我们的路由中,然后在不实例化​​User​​模型的情况下利用......
  • Laravel — P50:路由和依赖注入
    我们在前几篇文章中介绍了一些依赖注入主题,但现在我们想开始更具体一些。我们终于进入了Laravel的更高级部分,并将开始关注Laravel特定领域内的特定主题。接下来的几篇文......
  • Laravel — P49:依赖注入
    我希望上一篇文章有意义。依赖注入确实是一个简单的概念。我觉得在你说你知道“Laravel中的依赖注入”之前,你应该完整地理解它。在我们再次进入依赖注入之前,你应该了解Lar......
  • Laravel — P48:依赖注入概念(高级 PHP 概念)
    在你的Laravel职业生涯中,你会多次听到“依赖注入”这个词,所以你不妨熟悉一下它。在我们进入Laravel之前,让我们看看依赖注入作为PHP(或任何编程语言)中的一个概念。我们应......
  • Laravel — P55:路由中的软删除模型
    完成这样的教程系列并不像看起来那么简单。您想按特定顺序涵盖主题,但每次谈到一个新主题时,您都会意识到您需要涵盖其他内容才能做到这一点。例如,在学习了Laravel中一些比......
  • 「矩阵求逆」P4783 【模板】矩阵求逆
    知识点:线性代数Link:Luogu大家好啊,我不会线代,下学期才开,所以这题抄的,只是简单记录做法,等到学了线代再回来更深一步理解。但是这做法又易懂又好记又牛逼。主要抄袭对象:ht......