हैलो मैं एक नौसिखिया हूँ, मैंने अभी क्विज़ एप्लिकेशन के लिए एक प्रोजेक्ट बनाना शुरू किया है। मैंने अपने स्टोर और अपडेट फ़ंक्शन में कोड दोहराया है, मैं दोहराव को कैसे कम कर सकता हूं और एक क्लीनर कोड लिख सकता हूं, किसी भी मदद की सराहना की जाएगी

धन्यवाद नबीली

यह मेरा स्टोर तरीका है

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;
            }
        }
        elseif(!empty($question->imgpath) && $request->hasfile('image'))
        {
            $file=$request->file('image');
            $fileWithExt = $file->getClientOriginalName();
            $filename = pathinfo($fileWithExt,PATHINFO_FILENAME);
            $extension = $file->getClientOriginalExtension();
            $nameoffile = $filename.'_'.time().'.'.$extension;
            $path = $file->move(public_path('images'),$nameoffile); 
            $path = $nameoffile;
        }
        else
        {
           $path=$question->imgpath;
        } 

0
Nabeel Siddiqui 14 अप्रैल 2020, 14:26

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;
        }
    }
0
Bipin Regmi 14 अप्रैल 2020, 11:54