为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
梦里花落0921 2022-12-23 13:07:36
您好,我是新手,我刚开始为测验应用程序创建项目。我在存储和更新功能中重复了代码,如何减少重复并编写更清晰的代码,我们将不胜感激谢谢 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;            }        }
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

您可以在您的模型类中创建一个新的特征或函数,并可以在您的控制器中使用它。像这样


在你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;

        }

    }


查看完整回答
反对 回复 2022-12-23
  • 1 回答
  • 0 关注
  • 60 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信