2017-05-18 1 views
-2

그러나 Laravel 프레임 워크를 사용하고 있습니다.이 대답은 프레임 워크 지식 없이도 대답 할 수 있어야합니다.PHP에서 어떻게 리팩터링 할 수 있습니까?

나는 images라는 데이터베이스 테이블을 가지고 있습니다. 내 웹 사이트의 경우 각 비디오에는 기본 비디오 이미지, 더 작은 기능 이미지, 풍경 및 세로 이미지, 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, 
    ]); 

등등을 ...

데이터베이스를 변경하지 않고 현재 형식의 게시물 데이터 만 사용하여이 작업을 수행하는 더 좋은 방법이 있습니까?

+1

너에게 지저분 해 보인다면 ... 너 자신이 프로그래머가 될만큼 충분히 오래 살지 않았다! –

+0

그것은 지저분하지 않다는 것을 의미합니까? – virepo

+0

전혀 아닙니다! 코드가 제대로 작동하도록하십시오. –

답변

-2
public static function uploadMainImages($request,$gallery_id) { 
    createImg($gallery_id, $request['video_image_link'], $request['video_image_alt'], "video_image"); 
    createImg($gallery_id, $request['feature_image_link'], $request['feature_image_alt'], "feature_image"); 
    createImg($gallery_id, $request['gallery_landscape_image_link'], $request['gallery_landscape_image_alt'], "gallery_landscape"); 
    createImg($gallery_id, $request['gallery_portrait_image_link'], $request['gallery_portrait_image_alt'], "gallery_portrait"); 

}  

function createImg($id, $link, $alt, $type) { 
    $video_image = ($type == "video_image" ? 1 : 0); 
    $feature_image = ($type == "feature_image" ? 1 : 0); 
    $gallery_landscape = ($type == "gallery_landscape" ? 1 : 0); 
    $gallery_portrait = ($type == "gallery_portrait" ? 1 : 0); 
    $gallery_six = ($type == "gallery_six" ? 1 : 0); 
    $normal_image = ($type == "normal_image" ? 1 : 0); 

    Image::create([ 
     'gallery_id'=>$id, 
     'link'=>$link, 
     'alt'=>$alt, 
     'video_image'=> $video_image, 
     'feature_image'=> $feature_image, 
     'gallery_landscape'=> $gallery_landscape, 
     'gallery_portrait'=> $gallery_portrait, 
     'gallery_six'=> $gallery_six, 
     'normal_image'=> $normal_image, 
    ]); 
} 

아마도 이런 것일 수 있습니다. 이 기능을 사용하여 원하는 이미지 유형을 만듭니다.

+0

예를 들어 주시겠습니까? – virepo

+0

아마도 이런 것 같아 –

+1

당신이 제공 한 코드를 둘러싸고 문맥을 제공하십시오. – cybermonkey

관련 문제