:::
11-1 讓系統也可以顯示測試圖片
- 當我們執行上一單元的最後一個動作時,系統會寫入五筆資料到資料庫,其內容如:

- 很明顯可以看出圖片一個是相對位置(5號),新增的則是絕對位置(前面有http://開頭)。在這種情況下,我們的商品顯示可訂匯出問題:

- 因為我們當初有在
Product模型中針對放在public中的圖片網址做轉換,然而這些http://開頭的圖片不應該被轉換才是!所以,我們再重新修改一下Product模型,使之能針對http://開頭的資料直接傳回網址即可。<?php namespace App; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Str; use Storage; class Product extends Model { public function getImageUrlAttribute() { if (Str::startsWith($this->attributes['image'], ['http://', 'https://'])) { return $this->attributes['image']; } return Storage::disk('public')->url($this->attributes['image']); } }由於我們會用到字串處理的
Str物件,所以,上別忘了用use Illuminate\Support\Str;來引入之。其中我們用startsWith()來判斷自傳開頭是不是指定的字串,如果是,就直接把該屬性值傳回即可,不再加以轉換。詳細用法可參考:https://learnku.com/docs/laravel/5.8/helpers/3919#method-starts-with - 如此,就可以看到我們的圖片都正確呈現囉!

11. 建立商品測試資料
