然而,我正在使用Laravel框架,這個答案應該能夠在沒有框架知識的情況下得到回答。我該如何在PHP中重構這個?
我有一個名爲圖像的數據庫表。對於我的網站,每個視頻都有一個主視頻圖像,一個較小的特徵圖像,一幅風景和一幅肖像圖像,gallery_six(這是一張帶有6張圖片的圖片)。每個其他圖像歸類爲normal_image。
表是這樣的:
id | gallery_id | link | alt | video_image | feature_image | gallery_landscape | gallery_portrait | gallery_six | normal_image
現在,當我創建畫廊,我想插入記錄到數據庫中,但我的代碼只是看起來凌亂,我不確定我怎麼能重構這個。
當我的帖子請求通過控制器,它看起來是這樣的:
array(
[video_image_link] => 'link'
[video_image_alt] => 'alt'
[feature_image_link] => 'link'
[feature_image_alt] => 'alt'
[gallery_landscape_image_link] => 'link'
[gallery_landscape_image_alt] => 'alt'
[gallery_portrait_image_link] => 'link'
[gallery_portrait_image_alt] => 'alt'
)
在我的方法,我這樣做:
public static function uploadMainImages($request,$gallery_id)
{
//upload video image
Image::create([
'gallery_id'=>$gallery_id,
'link'=>$request['video_image_link'],
'alt'=>$request['video_image_alt'],
'video_image'=>1,
'feature_image'=>0,
'gallery_landscape'=>0,
'gallery_portrait'=>0,
'gallery_six'=>0,
'normal_image'=>0,
]);
//upload feature image
Image::create([
'gallery_id'=>$gallery_id,
'link'=>$request['feature_image_link'],
'alt'=>$request['feature_image_alt'],
'video_image'=>0,
'feature_image'=>1,
'gallery_landscape'=>0,
'gallery_portrait'=>0,
'gallery_six'=>0,
'normal_image'=>0,
]);
等等......
有沒有更好的方式來做到這一點,而不需要改變數據庫,只用目前的形式發佈數據?
如果這對你來說看起來很混亂......那麼你還沒有活到足以讓自己成爲程序員! –
這是否意味着它不是凌亂? – virepo
完全沒有!只是讓代碼正常工作。 –