:::

11-1 讓系統也可以顯示測試圖片

  1. 當我們執行上一單元的最後一個動作時,系統會寫入五筆資料到資料庫,其內容如:
  2. 很明顯可以看出圖片一個是相對位置(5號),新增的則是絕對位置(前面有http://開頭)。在這種情況下,我們的商品顯示可訂匯出問題:
  3. 因為我們當初有在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

  4. 如此,就可以看到我們的圖片都正確呈現囉!

 

到GitHub觀看此單元程式異動


:::

書籍目錄

展開 | 闔起

快速登入


https%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D1426%26tbsn%3D43

計數器

今天: 5155515551555155
昨天: 2489248924892489
總計: 8027137802713780271378027137802713780271378027137