如何进行代码重构以减少 laravel 中的相似代码?

您好,我是新手,我刚开始为测验应用程序创建项目。我在存储和更新功能中重复了代码,如何减少重复并编写更清晰的代码,我们将不胜感激


谢谢 Nabeel


这是我的商店方法


public function store(Quiz $quiz, QuestionRequest $request)

     {  

        if($request->hasfile('image'))

        { 

            $file=$request->file('image');

            //Get File name with the extension

            $fileWithExt = $file->getClientOriginalName();

            //Get Just File Name

            $filename = pathinfo($fileWithExt,PATHINFO_FILENAME);

            //Get Just Extension

            $extension = $file->getClientOriginalExtension();

            //Filename to store

            $nameoffile = $filename.'_'.time().'.'.$extension;

            //Upload Image

            $path = $file->move(public_path('images'),$nameoffile); 

            //$path = $file->storeAs('app/img/',$nameoffile); 

            $path = $nameoffile;

        }  

        else

        {

            $path=null;

        }


     }

这是我的更新方法


public function update(Quiz $quiz,QuestionRequest $request,Question $question)

    {  

        if(is_null($question->imgpath))

        {

            if($request->hasfile('image'))

            { 

                $file=$request->file('image');

                //Get File name with the extension

                $fileWithExt = $file->getClientOriginalName();

                //Get Just File Name

                $filename = pathinfo($fileWithExt,PATHINFO_FILENAME);

                //Get Just Extension

                $extension = $file->getClientOriginalExtension();

                //Filename to store

                $nameoffile = $filename.'_'.time().'.'.$extension;

                //Upload Image

                $path = $file->move(public_path('images'),$nameoffile); 


                $path = $nameoffile;

            }  

            else

            {

                $path=null;

            }

        }



梦里花落0921
浏览 137回答 1
1回答

蝴蝶不菲

您可以在您的模型类中创建一个新的特征或函数,并可以在您的控制器中使用它。像这样在你Quiz.php刚刚创建一个名为fileUpload()php artisan fileUpload($data)     {      $file=$data;      //Get File name with the extension      $fileWithExt = $file->getClientOriginalName();      //Get Just File Name      $filename = pathinfo($fileWithExt,PATHINFO_FILENAME);      //Get Just Extension      $extension = $file->getClientOriginalExtension();      //Filename to store      $nameoffile = $filename.'_'.time().'.'.$extension;      //Upload Image      $path = $file->move(public_path('images'),$nameoffile);       $path = $nameoffile;      return $path;    }在你的控制器中store(),update()你可以这样做    if(is_null($question->imgpath))    {        if($request->hasfile('image'))        {              $path = $quiz->fileUpload($request->file('image'));        }          else        {            $path=null;        }    }
打开App,查看更多内容
随时随地看视频慕课网APP