Autour de Laravel

Problème de post

Avatar de S0m0ke
S0m0ke

salut chers amis merci de votre soutien car j'ai trouvé la réponse à la première queestion maintenant je veux faire un formulaire à poster voici le formulaire `@extends('template')

@section('content')

      <form action="storeEmail" method="POST">
        <div class="row">
         <div class="col-md-8">
         <input type="email" name="email" id="email" class="form-control" placeholder="Envoyer votre email...">

         </div>
        </div><br>
        <div class="row">
         <div class="col-md-4">
          <input type="submit" value="enregistrer" name="enregistrer" class="btn btn-primary">

         </div>
        </div>
      </form>

    </div>
</div>

@endsection

@section('footer') ©Right @endsection

et voici le controller<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class EmailController extends Controller { // public function getForm() { return view('email'); }

public function postForm(EmailRequest $request)
{
$email=new Email;
$email->email=$request->input('email');
$email->save();
return view('email_ok');

} } et voici le routerRoute::get('email', 'EmailController@getForm'); Route::post('email', ['uses'=>'EmailController@postForm','as'=>'storeEmail']);` mais je ne sais pas pourquoi quand je soumets le formulaire la page vient' 404 Not Found ' je veux comprendre pourquoi mon formulaire semble ne pas trouver la page

Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Salut, c'est quelle version de Laravel ?

Posté il y a 1 mois
Avatar de S0m0ke
S0m0ke

je travaille avec laravel 7

Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Salut,

Change ainsi ta route :

Route::post('email', 'EmailController@postForm')->name('storeEmail');

Et dans le formulaire :

<form action="{{ route('storeEmail) }}" method="POST">
@csrf
Posté il y a 1 mois
Avatar de S0m0ke
S0m0ke

Salut Frère bestmomo je suis très content de voir que la première etape marche à merveil. quant à la deuxième etape je voudrais vous vous dire que il s'agit de ce message qui s'affiche que je ne comprends vraiment pas car si je comprends l'anglais qui est exprimé ici normalement ça voudrais dire que

 Target class [App\Http\Controllers\EmailRequest] does not exist.

que emailrequest n'existe pas cependant je suis sur d'avoir crée le request emailrequest voici le fichier ici:

class EmailRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            //
            'email|required|unique'
        ];
    }
}

je veux savoir ce qui ne marche pas encore dans mon programme

Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Salut,

Il doit manquer la déclaration de la classe dans le contrôleur EmailController :

use App\Http\Requests\EmailRequest;
Posté il y a 1 mois
Avatar de S0m0ke
S0m0ke

Merci mon frère voici le nouveau problème que je rencontre après soumission du formulaire je me rends voila ce qui s'affiche :

  403
This action is unauthorized.

je voudrais savoir comment je epux faire car de mon côte j'ai essayé de mettre la methode à authorize() à true mais en faisant ainsi jeme rends compte que le formulaire ne se soumets pas

Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Dans le formrequest la bonne syntaxe est :

    public function rules()
    {
        return [
            'email' => 'email|required|unique',
        ];
    }
Posté il y a 1 mois
Avatar de S0m0ke
S0m0ke

en tout cas merci pour l'heure j'ai trouvé la reponse

Posté il y a 1 mois

Vous ne pouvez pas répondre à ce sujet.