takix's avatar
Level 1

Story Problem

If the user adds a picture, I want to cancel the min part that requires the story to be written. I want the 'story' => min part to be canceled if the user adds a picture. That is, I want the minimum character input to be canceled when the image is added. If the picture is deleted or the picture format is not suitable (size, extension, etc.), I want the minimum character input to come back.

HomeController.php

public function store(Request $request)
    {
        
        if(Settings::find('active_upload')->value == 0){
            toastr()->warning(__('main.new_entries_paused'));
            return redirect('/');
        }
        
        Validator::make($request->all(), [
            'title' => 'required|string|max:255',
            'story' => 'required|string|min:'.Settings::find('minimum_characters')->value.'|max:'.Settings::find('maximum_characters')->value,
            'tags' => 'nullable',
            'category_id' => 'required',
            'genders_id' => 'required',
            'age' => 'required',
            'photo' => 'nullable|image|mimes:jpeg,png,jpg|max:2048'
        ],[
			'title.required' => 'Bir Başlık Giriniz.',
            'title.max' => 'Başlık 255 Karakterden Uzun Olamaz.',

            'story.required' => 'Boş bırakılmamalıdır.',
            'story.min' => 'Girilen Metin '.Settings::find('minimum_characters')->value.' Karakterden Fazla Olmalıdır.',
            'story.max' => 'Girilen Metin ' .Settings::find('maximum_characters')->value.' Karakterden Az Olmalıdır.',

            'category_id.required' => 'Kategori Seçmeniz Gerekiyor.',

            'photo.image' => 'Lütfen Resim Dosyası Yükleyiniz.',
            'photo.mimes' => 'Dosya Biçimi jpg,png veya jpeg olmalıdır.',
			
			
		
		])->validateWithBag('write');
  
        // if word censored is active
        if(Settings::find('words_censored')->value == 1) {
            
            $censor = new CensorWords;
            $badwords = $censor->setDictionary(base_path('/vendor/snipe/banbuilder/src/dict/dictionary.php'));
            $string = $censor->censorString($request->story)['clean'];
            
        } else {

            $string = $request->story;
        
        }
        //
        
        // create item
    	$create_item = Items::create([
            'title' => $request->title,
            'story' => $string,
            'slug' => $this->make_slug($request->title),
            'status' => Settings::find('new_entries')->value,
            'user_id' => Auth::id(),
            'category_id' => $request->category_id,
            'genders_id' => $request->genders_id,
            'age' => $request->age,
        ]);
        
        if ($create_item) {

            // if exists, upload photo
            if ($request->hasFile('photo')) {

                // upload original
                $path = $request->file('photo')->store('photos');

                // store photo
                $storePhoto = Photos::create([
                    'item_id' => $create_item->id,
                    'filename' => $path
                ]);

            }

            // create tags
            $tags = explode(",", $request->tags);
            $create_item->tag($tags);
            
            if(Settings::find('status_points')->value == 1){
                if(Settings::find('status_points_new_entry')->value == 1){
                    Points::create([
                        'user_id' => Auth::id(),
                        'point_type' => "new_entry",
                        'score' => Settings::find('points_new_entry')->value,
                        'item_id' => $create_item->id
                    ]);
                }
            }
            
            if(Settings::find('new_entries')->value == 1){
            
                toastr()->success(__('main.toast_your_post_has_been_posted'));
                return redirect('/');
                
            } else {
                
                toastr()->warning(__('main.toast_post_in_moderation'));
                return redirect('/');
                
            }
            
            
        } else {
            toastr()->error(__('main.toast_there_are_problems_try_again'));
            return redirect('/')->withErrors($validator, 'write')->withInput();
        }
        
    }
0 likes
0 replies

Please or to participate in this conversation.