Bonjour,

Voila je rencontre un petit problème avec mon code, il marche mais quand j'arrive sur la view et que je rafraichie la page il me re insert une ligne y a t'il un moyen simple pour palier a ce probleme ??

Mon code:

public function sendForm(Request $request)
{

    $res = $request->all();

    $file = $request->file('image');
    $fileName = $file->getClientOriginalName();
    $detinationPath = base_path() . '/public/images/';
    $request->file('image')->move($detinationPath, $fileName);

    $this->articleRepository->insertArticle($res, $fileName);
    $articles = $this->articleRepository->getArticle();

    return view('index', ['res' => $res, 'articles' => $articles]);
}
public function insertArticle($request, $image)
{

    $content_article['titres'] = $request['titre'];
    $content_article['images'] = $image;
    $content_article['texts'] = $request['text'];

    return Article::create($content_article);
}

1 réponse


Azorgh
Réponse acceptée

Bonjour,

Tes fonctions qui permettent de réaliser ce genre d'actions (ajout, edition, suppression) ne sont pas censé retourner de vues.
Donc forcément, si tu refresh, tu te trouve sur la même fonction de controller, donc il te refait l'insert dans ton cas.

Effectue une simple redirection à la fin de ta fonction au lieu retourner la vue.

public function sendForm(Request $request){
    // Blablabla
    return redirect(route('articles.index'));
}