將圖像放在自己的表中會導致更多的開銷,因爲即使是其中一個圖像,您也必須每次查詢關係。把它放在項目表中是非常好的,你不應該被打擾。如果你想讓事情變得更簡單,你可以嘗試這種方法。
生成的圖像的名字 - somerandomname.jpg
primary_image : somerandomname.jpg
featured_image : somerandomname_featured.jpg
thumbnail_image : somerandomname_thumb.jpg
存儲在一個共同的現場圖像名稱說image
。那裏的字段image
將包含值somerandomname.jpg
。
然後將以下內容添加到您的模型中。
protected $appends = [
'primary_image', 'featured_image', 'thumbnail_image'
];
public function getPrimaryImageAttribute()
{
return $this->image;
}
public function getFeaturedImageAttribute()
{
return str_replace('.jpg', '_featured.jpg', $this->image);
}
public function getThumbnailImageAttribute()
{
return str_replace('.jpg', '_thumb.jpg', $this->image);
}
這些訪問器可以讓你像任何數據庫字段一樣獲取圖像。 appends
屬性會自動將所有這些字段添加到每個模型結果。