2017-09-20 44 views
1

広告ページに誘導されてから同じデータを再度読み込むと、データベースに再度入力されます。それらのコンパクトな変数を維持しながらページのリダイレクトの他のですか?ページを再読み込みした後にデータがデータベースに再び追加されます

Controller.php

public function StorePost(Request $request) 

{ 

    $formInput = $request->except('image'); 

    $this->validate($request, [ 
     'title' => 'required', 
     'name' => 'required', 
     'email' => 'required|email', 
     'contact' => 'required', 
     'model' => 'required', 
     'city' => 'required', 
     'description' => 'required', 
     'image'=>'image|mimes:png,jpg,jpeg|max:10000' 
    ]); 


    $image = $request->image; 

    if($image){ 

     $imageName = $image->getClientOriginalName(); 
     $image->move('images',$imageName); 
     $formInput['image'] = $imageName; 
    } 


    Post::create($formInput); 

    $posts = Post::all(); 

    return view('ad.ad',compact('name','posts')); 


}} 
+0

あなたはif'条件 ''で 'ポスト::作成($ formInput)を試してみました、その後、実行していますか? – Nikita

+0

@ニキータ 'if 'は、リクエストに存在する場合のイメージのインクルードを扱うことを意図しているようです。しかし、検証が「イメージ」フィールドを強制的に行うことは奇妙なことですが、イメージがある場合は再びイメージがあります。 –

+0

post-redirect-getを参照してください。例:https://stackoverflow.com/questions/10827242/understanding-post-redirect-get –

答えて

0

あなたは、単に '広告' ルート/ページへ(redirect('/ad_url'))にリダイレクトすることもできます。おそらく、 'ControllerForAddPage'はあなたの '広告'ビューを表示するもので、単にそのコントローラー内のすべての投稿を取得し、データの保存を処理するコントローラーは取得しないと言います。

0

私は店とショーの間の別のルートを使用する方がよいと思います。ストアの成功後にインデックスルートにリダイレクトするだけで済みます。例:

... 

Post::create($formInput); 

return redirect()->route('ad.index'); 
0

これを避けるには、別の場所にリダイレクトする必要があります。データが正常に格納されている場合は、それをリダイレクトして、そうでなければ同じ場所にエラーメッセージを表示してurlを投稿します。

例のコードは、次のされています

public function StorePost(Request $request) { 

     $formInput = $request->except('image'); 

     $this->validate($request, [ 
      'title' => 'required', 
      'name' => 'required', 
      'email' => 'required|email', 
      'contact' => 'required', 
      'model' => 'required', 
      'city' => 'required', 
      'description' => 'required', 
      'image' => 'image|mimes:png,jpg,jpeg|max:10000' 
     ]); 

     $image = $request->image; 

     if ($image) { 
      $imageName = $image->getClientOriginalName(); 
      $image->move('images', $imageName); 
      $formInput['image'] = $imageName; 
     } 


     $store = Post::create($formInput); 

     if($store){ 
      //return to posts list view 
      return redirect('posts')->with('success', 'Post successfully stored.'); 
     } 
     //redirect to the form to create post 
     return redirect()->back()->with('failed', 'Failed to store the post!'); 

    } 
関連する問題